日度归档:2010年6月3日

发一个自动新建、修改虚拟主机的shell脚本

 今天重新弄了下自助建站的虚拟主机管理程序,服务器ubuntu 10.04 server 64位,安装apache+php+mysql

写了个脚本,给php调用,在新建用户账号、修改或绑定域名时起执行的,运用了apache 的reload,添加虚拟主机免重启方案!

然后就是用visudo给apache的用户www-data授权,允许用root身份执行这个脚本及/etc/init.d/apache2 二条命令。

这样web就可以执行新建及修改虚拟主机的操作了,但是目前还是不太安全的,www-data有关闭和启动apache的权限,下次找个时间,重新写个apache2的reload专用脚本。不使用/etc/init.d/apache2脚本。!

Ruby代码
  1. #!/bin/sh   
  2. FILENAME=/etc/apache2/sites-enabled/$1  
  3. if [ $1 = "diyweb" ] ; then  
  4.         echo ‘error ,diyweb is system user!’;   
  5. elif [ $1 = ‘000-default’ ] ; then  
  6.         echo ‘error ,000-default is sysytem user’;   
  7. else  
  8. if [ -f $FILENAME ]; then  
  9.         echo ‘Del old file’;   
  10.         rm -rf $FILENAME  
  11.         echo ‘Update user’  
  12. else  
  13.         echo ‘Add user’  
  14. fi   
  15.         echo "<VirtualHost *:80>\nServerName $1.ye55.net \nServerAlias $1.armos.cn $2 \nDocumentRoot \"/home/web/diyweb/company/$1\"\n</VirtualHost>" >> $FILENAME  
  16.         sed ‘s/@/ /g’ $FILENAME -i   
  17.         echo ‘Success’  
  18.         /etc/init.d/apache2 reload   
  19. fi  

写的一个vpn自动重连脚本

XML/HTML代码
  1. #!/bin/sh   
  2. VPN=`ifconfig | grep ppp0`   
  3. #echo $VPN   
  4. if [ -z "$VPN" ]   
  5. then   
  6. pon myvpn   
  7. route add -net 10.10.10.0 netmask 255.255.255.0 dev ppp0   
  8. else   
  9. echo $VPN >/dev/null   
  10. fi  

 

公司内部的服务器连接到外网的vpn ,从而方便进行远程内部访问及操作。内部服务器系统是ubuntu 10.04 server 64位版,外网服务器windows 2003 做vpn服务。linux 中的pptp-linux登陆后需要执行route添加路由才能访问vpn内网。

脚本的意思是监控ppp0连接是否正常,如果没有ppp0接连则自动开启vpn拨号,并把日志写入root邮件 /var/mail/root

脚本编写后放入crontab -e   

* * * * * root /root/vpn.sh