在工作的过程中,有时候需要对一些文件、代码进行备份操作,但是又不想每天手动操作,所以可以用到 Linux 上的一个工具 crontab 来进行自动备份这个操作。
crontab -l 列出定时任务的列表
crontab -e 对定时任务进行编辑
crontab 有如下几个参数:
分 时 日 月 周 命令
30 8 * * * /home/user/xlh/back.sh >> /home/user/xlh/log
比如以上这条命令的用处就是每天早上 8 点 30 执行 /home/user/xlh/ 目录下的 back.sh shell 脚本,将日志输出到 log 日志中。
当然,还可以根据需求自定义其他的指定时间,比如某个月的某一天,一周时候的特定的周几,等等。
这里还有个特殊的时间点:
* * * * * /home/user/xlh/back.sh >> /home/user/xlh/log
对参数不指定比如上面这条,意思是每隔一分钟就去执行一次,当我们需要短时间检测某个服务是否断掉的时候,如果断掉就重启的时候就可以使用以上这条命令。
间隔十秒
如果,我们需要执行的定时任务的时间间隔还要短一点,比如 10 秒,单纯的直接使用参数就不行了,但我们可以采取以下这几条命令实现这个操作:
* * * * * /home/user/startServer.sh
* * * * * sleep 10; /home/user/startServer.sh
* * * * * sleep 20; /home/user/startServer.sh
* * * * * sleep 30; /home/user/startServer.sh
* * * * * sleep 40; /home/user/startServer.sh
* * * * * sleep 50; /home/user/startServer.sh
间隔20秒,则是以下这个形式:
* * * * * /home/user/startServer.sh
* * * * * sleep 20; /home/user/startServer.sh
* * * * * sleep 40; /home/user/startServer.sh
那么一分钟以内,间隔其它秒数的,也就知道是怎么写的了。
注意:
crontab 执行的命令与 user 相关,sudo 的 crontab 与其它用户的不是混合在一起的。