Linux定时任务的使用
来自: http://my.oschina.net/xiongyuanliang/blog/608802
Linux下的定时任务,crontab是一个非常有用的命令(大部分的自动完成的工作都需要用到自动执行命令)
这里演示一个非常简单的定时任务设置。(用来做以后所有复杂的自动化工作的前提)。
先写个简单的用来测试的脚本(我们定义其为cro.sh 主要就是把当前时间写入到一个1.txt文本里面)
#!/bin/bash
echo `date`>>/home/test/1.txt
PS:在命令行里面执行命令需要``这样的格式,命令就会运行。
然后可以切换到
vim /etc/crontab
用法在这个文件里已经有详细的说明
从左往右依次代表着 分 时 天 月 星期的控制
如果是*/1则代表频率。
这里为了测试,我将其设置为 1分钟刷新自动运行一次。(当然这里直接写的时候,脚本无法自动直接运行,需要加上sh)
编辑自动执行任务,则有:
Crontab -e (在看到的自动执行任务里,我们加上sh 就是直接让sh运行cro.sh)
然后切换到前端 用crontab -l 查看当前的定时任务
可以看到自动执行任务已经添加完成,监测
用tail -f 1.txt
可以看到当前已经开始正确的进行了记录。
如果没有自动重启任务:service crond restart(可用该命令对服务进行重启)
实用性自动任务加强实行脚本应用场景举例:
1.自动备份数据库(按照年月日进行备份指定的数据库到指定的目录)
#!/bin/bash
Mysqldump -uroot -proot test | gzip > /home/bak/test`date +%Y-%m-%d_%H%M%S`.sql.gz
将其保存为home/bak/baksql.sh
在crontab -e
* * 1 * * sh /home/bak/baksql.sh
这样就完成了一天自动备份一次数据库test
2.检测hhvm脚本是否一直在自动运行
#!/bin/sh
#查所有的进程找到了hhvm
process=`ps aux | grep hhvm | grep -v grep|wc -l`;
if [ "$process" -lt 1 ]; then
/usr/local/bin/hhvm --mode daemon --user www --config /etc/hhvm/server.ini --config /etc/hhvm/php.ini --config /etc/hhvm/config.hdf
else
echo "process hhvm exsits";
fi