One ID One session for vpn.

一个vpn账号只能生成一个session, 一个vpn账号只允许一个连接。限制登录个数 纯傻瓜操作免去繁琐的配置,原理非常简单只要ppp用户登录即生成一个文件在/var/run/pptpd-users下面. 重复登录的话杀掉原进程生成新的。即把上一个用相同账号的人挤下去. 保存下面的文件到/etc/ppp下面再加上x权限. #!/bin/sh # get the username/ppp line number from the parameters REALDEVICE=$1 USER=$2 # create the directory to keep pid files per user mkdir -p /var/run/pptpd-users # if there is a session already for this user, terminate the old one if [ -f /var/run/pptpd-users/$USER ]; then kill -HUP `cat /var/run/pptpd-users/$USER` fi […]

How to use vpn via different route by one script automatically.

首先感谢github 上的https://github.com/jimmyxu/chnroutes 下面的脚本只是为了我这类懒人而写的纯傻瓜操作且仅限Mac用户。其他平台请自行参照项目地址中的说明文件. 备注, 此bash会在你的/etc/ppp下面生成两个文件. 也就是这两个文件会使你的访问分流. 并且最好定期更新这两个文件. 保存并执行下面的bash即可. #!/bin/bash #auth:Simon #mail:simon.xie@codewalker.me export tmpDirForVpnController=/tmp/tmp.route.vpn.dir export downloadFileAddress=’https://github.com/ranmocy/chnroutes/archive/master.zip’ function checkFiles { echo ‘checkFiles…’ if [ ! -d $tmpDirForVpnController ];then echo ‘folder no found, create it’ $tmpDirForVpnController mkdir -p $tmpDirForVpnController; fi cd $tmpDirForVpnController if [ ! -d chnroutes-master ]; then if [ ! -f master.zip ]; then downloadPackage fi […]

How to use rsync

Before SETUP: server:提供所需源 client:抓去源内容 文中提到IP皆为伪地址,实际配置按需设置 1 安装 yum install rsync 2.1 on server 2.1.1 以下文件需要手动创建 touch /etc/rsyncd/rsyncd.conf #创建rsyncd.conf,这是rsync服务器的配置文件. touch /etc/rsyncd/rsyncd.secrets #创建rsyncd.secrets ,这是用户密码文件. chmod 600 /etc/rsyncd/rsyncd.secrets #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功. touch /etc/rsyncd.motd ##这是欢迎词,也就是登录之后显示的文本,相当于vsftp中的banner文件. 2.1.2 分别编辑上面的文本文件 rsyncd.conf: vim /etc/rsyncd/rsyncd.conf pid file = /var/run/rsyncd.pid port = 873 address = 123.456.789.000#server 的IP地址,这里可以写成127.0.0.1或者别的指向自己 #uid = nobody #gid = nobody uid = […]

Using Dnsmasq for local development on OS X

自从换成了mac后总是想要找到在OS X下的Linux的代替软件,这次找到的是dmsmasq A安装和配置 安装很简单,前提是已经安装了brew #首先更新一下 brew update #接着简单一条命令就开始安装了 brew install dnsmasq 不同于Linux下的安装,OS X中安装之后你需要把默认的配置文件拷贝到/usr/local/etc/dnsmasq.conf 如下就是安装之后的说明步骤也很简单。 To configure dnsmasq, copy the example configuration to /usr/local/etc/dnsmasq.conf and edit to taste. #这里就是拷贝文件 cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf To have launchd start dnsmasq at startup: #不同于Linux的地方就是需要手动把服务的启动文件拷贝的相应位置, sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons Then to load dnsmasq now: 重新读取一下『系统项』 sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist 下面这句是重要的一点,怎么重启一个服务,需要用到的系统命令是launchctl […]

get.ip.source.sh

#!/bin/bash #writen by simon @20140325 filesource=mysql.log output=denied.ip`date ‘+%Y%m%d’` ipp (){ exec < $1 tring_times=0 while read a do columns=`echo $a|awk -F' ' '{print NF; exit}'` if [ ! $columns -eq '2' ];then continue fi sourceip=`echo $a |awk -F' ' '{print $2}'` ipcount=`echo $a|awk -F' ' '{print $1}'` sring=`curl -s "http://ip138.com/ips138.asp?ip=${sourceip}&action=2"| iconv -f gb2312 -t utf-8|grep […]

touchscript update at 2013-11-17

#!/bin/bash #filename:touchscript #USAGE:touchscript [sh|pl|py] filename #writer:codewalkertse #email:xyy.xx.victor@gmail.com #creat at 2012-12-04 #update 2013-11-17 INFO=$(cat > $2 chmod 700 $2;; pl|PL) echo “creat a perl script:$2” echo “#!/usr/bin/perl -w” > $2 echo $INFO >> $2 echo “use strict;” >> $2 chmod 700 $2;; py|Py) echo “creat a python script:$2” echo “#!/usr/bin/python2” >> $2 echo “” >> $2 […]

bash实现rename

昨天被问道个重命名文件的问题要求bash实现,一时没有想起怎么实现只想到个rename命令也由于没有开发环境不能调试就放弃了。回家后想了想可以如下完成。 一 关键是${file/.png} #!/bin/bash lists=`ls *png` for file in $lists;do mv “$file” “${file/.png}”.jpg; done 二 关键是basename #!/bin/bash lists=`ls *png` for file in $lists;do mv $file `basename $file .png`.jpg; done update:15:51; 刚才突然想起来昨日面试还有一个题目是怎么查看The Zen of Python import this 有时候看来记性这东西还真让人琢磨不透,明明知道的东西有时候就是想不起来。但有时候又会自己就从脑子里蹦出来

bash脚本之备份文件之拉回本地

#!/bin/bash LOGFILE=/path/to/your/log/file.log REMOTE=/path/to/remote/dir/ LOCAL=/path/to/local/dir REMOTEIP=x.x.x.x USERNAME=x.x.x.x PORT=xxx echo “CP remote dirs to local START at `date +%Y%m%d-%H:%M:%S`” >> $LOGFILE scp -rv -P $PORT $USERNAMEt@$REMOTEIP:$REMOTE`date +%Y%m%d` $LOCAL echo “CP remote dirs to local END at `date +%Y%m%d-%H:%M:%S`” >> $LOGFILE

bash脚本之备份

#!/bin/bash #all.file.backup.sh BACKDIR=/path/to/your/back/dir/`date +%Y%m%d`/ LOGFILE=/path/to/your/log/file.log ORIPATH=/path/to/your/original/dir/ echo “Backup BEGIN at `date +%Y%m%d-%H:%M:%S`” >> $LOGFILE # is EXIST the Directory of Backup if [ ! -d $BACKDIR ]; then mkdir -p $BACKDIR echo “Created $BACKDIR at `date +%Y%m%d-%H:%M:%S`” >> $LOGFILE fi # is exist of log file if [ ! -f $LOGFILE ]; then touch $LOGFILE […]