方法一:
crontab -e 编辑计划任务,直接生效。
方法二:
修改/etc/crontab
vim /etc/crontab
加载任务,使之生效:crontab /etc/crontab
查看任务:
crontab -l 查看计划任务
crontab -r 移除当前用户所有计划任务
crontab -u 用户名 -l (列出用户的定时任务列表)
`PS`:特别注意,crond的任务计划, 有并不会调用用户设置的环境变量,它有自己的环境变量,
当你用到一些命令时,比如mysqldump等需要环境变量的命令,手工执行脚本时是正常的,
但用crond执行的时候就会不行,这时你要么写完整的绝对路径,
要么将环境变量添加到 /etc/crontab 中。
· 参考 ·
https://www.cnblogs.com/yyxianren/p/10929670.html
以具体例子进行分析定时脚本:
pgslq.sh为需要执行的脚本,内容为需要进行的备份操作或者其他任务脚本
1 * * * * /home/postgres/pgsql.sh
表示的是每小时的第一分钟执行该脚本
2 3 * * * /home/postgres/pgsql.sh
表示每天的3点零2分执行该脚本
1 1 * * 0 / home/postgres/pgsql.sh
表示的是每周的1点1分进行脚本的执行
1 1 1 * * / home/postgres/pgsql.sh
表示的是每月的1点1分进行脚本的执行
比较容易犯的错误是通常会把每小时的第一分钟按做每分钟执行一次,这点要注意两者的区别:
1 * * * * /home/postgres/pgsql.sh
表示的是每小时的第一分钟执行该脚本
*/1 * * * * /home/postgres/pgsql.sh
表示的是每一分钟执行该脚本
因此这里要记住”/”这个符号带来的区别
“-”的用法:
0 10 * * 1-3 / home/postgres/pgsql.sh
表示的是每个周一到周三的早上10点执行该脚本
0 10 * * 1、3、5 / home/postgres/pgsql.sh
表示的是每周的周一、周三、周五的早上10点执行该脚本
每周五 15:15 执行
15 15 * * 5 tar -zcf /todd/bak.tar.gz /student
每隔两小时执行
0 */2 * * *
每5分钟一次
*/5 * * * * date >> /tmp/date.txt
每天的10点
00 10 * * * date >> /tmp/date.txt
每天10点20
20 10 * * * date >> /tmp/date.txt
每年10月10号10点20
20 10 10 10 * date >> /tmp/date.txt
每个周日或者每年的10月10号10点20
20 10 10 10 7 date >> /tmp/date.txt
每月10号10点,15点,20点的20分
20 10,15,20 10 * * date >> /tmp/date.txt
每月10号到15号的10点,15点,20点的20分
20 10,15,20 10-15 * * date >> /tmp/date.txt
每天2:00整
00 02 * * * ls
每月1号2:00整
00 02 1 * * ls
00 02 14 2 * ls
每周日2:00整每年2月14号2:00整
00 02 * * 7 ls
每年6月的周五2:00整
00 02 * 6 5 ls
每月14号2:00整 或者 每周日2:00整,这两个时间都执行
00 02 14 * 7 ls
每年2月14号2:00整 或者 每周日2:00整,这两个时间都执行
00 02 14 2 7 ls
每隔5分钟
*/5 * * * * ls
每月1,5,8号的2:00整
00 02 1,5,8 * * ls
每月1到8号的2:00整
00 02 1-8 * * ls
每天早上6点
30 6 * * *
每天晚上6点
30 18 * * * ll