Linux 定时任务执行Shell脚本【CentOS6.8】
2016-09-20 15:25
531 查看
本人一直从事Windows系统的开发,最近一年基本上都在研究.NET跨平台相关的知识,最近遇到一个棘手的问题,由于前期技术选型的时候说采用WebAPI的方式进行部署,我当时就答应了,到最后上线的时候突然发现一个逆天的功能,需要通过API修改系统的IP,子网掩码,网关,设置完成以后系统需要重启
负责开发的同事完全按照windows上的编程模式,使用Windows内部函数修改这些参数并完成重启,但是在Linux上就行不通了,最后想了一个办法,设置一个定时计划,动态监控配置文件的方式,通过WebAPI写一个Shell文件,然后Linux通过定时任务检测改文件,如果该文件存在,就执行该文件,执行成功以后删除该文件,然后再刷新网络,重启电脑,废话不多说,具体实现如下:
编写定时任务执行脚本
initial.sh#!/etc/bash folder="/var/www/default" file="/var/www/default/network.sh" if [ ! -d "$folder" ]; then mkdir "$folder" fi echo "----------->" >> "/var/www/default/log.log" if [ -f "$file" ]; then echo $file source "$file" echo "==========>" >> "/var/www/default/log.log" rm -rf $file fi
network.sh[该文件由API写入]
#!/bin/sh # BY kerryhu # MAIL:king_819@163.com #这是一个自动修改网络ip、掩码、网关的脚本。 #使用方法ip_mod IP_MOD、MASK_MOD、GW_MOD #例:ip_mod 10.10.10.5 255.255.255.0 10.10.10.1 #其中IP_MOD、MASK_MOD、GW_MOD是要改成的ip、mask、gw #设置变量 PROC=/bin/sed IP_PATH=/etc/sysconfig/network-scripts/ifcfg-eth1 GW_PATH=/etc/sysconfig/network IP_PRI=`grep -i ipaddr $IP_PATH|awk -F "=" '{printf $2 }'` MASK_PRI=`grep -i netmask $IP_PATH|awk -F "=" '{printf $2}'` GW_PRI=`grep -i GATEWAY $GW_PATH|awk -F "=" '{printf $2}'` IP_MOD=192.168.1.214 MASK_MOD=255.255.0.0 GW_MOD=192.168.1.1 #修改ip、mask、gw $PROC -i "s/$IP_PRI/$IP_MOD/g" $IP_PATH $PROC -i "s/$MASK_PRI/$MASK_MOD/g" $IP_PATH $PROC -i "s/$GW_PRI/$GW_MOD/g" $GW_PATH #重启网卡 /etc/rc.d/init.d/network restart
设置定时任务
crontab -e
## For excuting scripts.sh every 3 seconds##on 2016年9月20日 17:41:53 */1 * * * * /bin/bash /var/www/default/initial.sh */1 * * * * sleep 5 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 10 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 15 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 20 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 25 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 30 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 35 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 40 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 45 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 50 && /bin/bash /var/www/default/initial.sh */1 * * * * sleep 55 && /bin/bash /var/www/default/initial.sh #-----------------------------------------------------------------
service crond start
注意事项
permission denied
参考文档:http://jingyan.baidu.com/article/90808022fa50dbfd90c80f52.htmletc/bash: bad interpreter:
参考文档:http://gubit.blog.sohu.com/30564154.html如何通过秒设置定时任务?
crontab -e
## For excuting scripts.sh every 3 seconds##on 2014-10-15 */1 * * * * /home/somedir/scripts.sh */1 * * * * sleep 3 && /home/somedir/scripts.sh */1 * * * * sleep 6 && /home/somedir/scripts.sh */1 * * * * sleep 9 && /home/somedir/scripts.sh */1 * * * * sleep 12 && /home/somedir/scripts.sh */1 * * * * sleep 15 && /home/somedir/scripts.sh */1 * * * * sleep 18 && /home/somedir/scripts.sh */1 * * * * sleep 21 && /home/somedir/scripts.sh */1 * * * * sleep 24 && /home/somedir/scripts.sh */1 * * * * sleep 27 && /home/somedir/scripts.sh */1 * * * * sleep 30 && /home/somedir/scripts.sh */1 * * * * sleep 33 && /home/somedir/scripts.sh */1 * * * * sleep 36 && /home/somedir/scripts.sh */1 * * * * sleep 39 && /home/somedir/scripts.sh */1 * * * * sleep 42 && /home/somedir/scripts.sh */1 * * * * sleep 45 && /home/somedir/scripts.sh */1 * * * * sleep 48 && /home/somedir/scripts.sh */1 * * * * sleep 51 && /home/somedir/scripts.sh */1 * * * * sleep 54 && /home/somedir/scripts.sh */1 * * * * sleep 57 && /home/somedir/scripts.sh #-----------------------------------------------------------------
参考文档:http://www.tuicool.com/articles/QJr2ErF
相关文章推荐
- linux 下部署spring定时任务执行shell脚本,shell脚本执行spoon
- linux 定时执行shell脚本 定时任务
- Linux 执行定时任务 shell脚本
- linux直接执行shell脚本正常,使用定时任务crontab执行出错
- centos下用定时任务执行shell脚本操作db2
- 在linux中执行shell脚本,当前用户执行没有问题,设置为定时任务却报错
- linux 定时执行shell脚本
- linux 定时执行shell脚本 【并发送信息到指定邮件centos6需要yum install sendmail】
- centos下添加定时执行php脚本任务
- linux真正使用shell脚本做定时任务 关键的Nohup
- 使用crontab,让linux定时执行shell脚本【crontab -e】
- linux 定时执行shell脚本
- Linux-crontab命令工具设置定时任务用于执行DB2脚本
- 工具 07 使用crontab,让linux定时执行shell脚本
- centos 设置定时任务执行指定脚本与Crontab的格式
- Linux定时任务中用脚本代替可执行程序的一个好处
- linux 定时执行shell脚本
- 清理oracle10g日志----shell脚本定时任务执行rman
- linux 定时任务 定时执行某脚本 定期爬虫 统计 刷新 crontab -e
- linux定时任务,手动执行脚本没有问题,放入定时任务不行