linux 定时脚本任务的创建

参考资料
https://my.oschina.net/xsh1208/blog/512810

定时脚本任务创建过程

1. 启动/终止 crontab 服务

一般使用这个命令
/sbin/service crond start #启动
/sbin/service crond stop #终止
/sbin/service crond restart #重启
/sbin/service crond reload #重新载入配置

centos7使用
/bin/systemctl start crond.service #启动
/bin/systemctl stop crond.service #终止

查看服务是否已经运行
ps -ax | grep cron

2.创建cron时间表

相关命令
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务


crontab -u root -e #编辑root用户的cron时间表(root用户可为其他用户创建时间表)直接用crontab -e 编辑当前用户的时间表
crontab -u root -l #root 查看自己的时间表(直接使用 crontab -l查看当前用户的时间表)

创建的例子
25 * * * * ls #每小时的25分时执行ls命令(执行结果不会输出出来而是保存到了根目录下的 /var/spool/mail/username 邮件中)
25 * * * * ls >/root/testing 2>&1 #将该时间下执行的结果转存到 /root/testing 文件中(路径是绝对路径){2>&1 表示执行结果及错误信息}

创建的规则
* * * * * command [结果保存的绝对路径] #注:command 是该cron可执行的命令,使用全局命令或带路径指定的命令
分 时 日 月 周 command [结果保存的绝对路径]

3.语法解释

除了数字还有几个个特殊的符号就是 "*"、"/" 、"-"、","
* 代表所有的取值范围内的数字,
"/" 代表每的意思,
"*/5" 表示每5个单位,
"-" 代表从某个数字到某个数字,
"," 分开几个离散的数字

4.创建的例子

每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line

5.指定命令执行者的身份

12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1
每天凌晨3点12分以 root 用户的身份运行tar czf 命令 并到存到 /dev/null中
2>&1 表示执行结果及错误信息

原文地址:https://www.cnblogs.com/jcblog/p/6369602.html