crontab命令,是Linux中用于设置脚本周期性执行的命令。
/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名/etc/crontab 这个文件负责调度各种管理和维护任务。/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly 目录中,让它每小时/天/星期、月执行一次。定时任务结构:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
minute: 区间为 0 – 59hour: 区间为 0 – 23day-of-month: 区间为 0 – 31month: 区间为 1 – 12Day-of-week: 区间为 0 – 7(周日可以是0或7)举个栗子:
*/1 * * * * 是指每分钟执行一次;
1 * * * * 是指每个小时1分钟的时候执行,比如9点1分、10点1分。。。
开启状态,如图所示:
关闭状态,如图所示:
需求:创建一个文件,使用定时任务每秒写入一行当前日期。
1. 编写定期任务 hello.sh
(这里我个人创建到/home/backup路径下)
#!/bin/bash if [ -f ~/.bash_profile ]; then . ~/.bash_profile fi step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i = ( i + step ) )) do time=$(date "+%Y-%m-%d %H:%M:%S") echo $time >> /home/backup/hello.txt sleep $step done2. 授权
$ chmod u+x hello.sh3. 添加定时任务
# 编辑当前用户的定时任务 $ crontab -e增加如下一行内容:
(每分钟,使用 /bin/sh,执行一次 /home/backup/hello.sh 文件)
*/1 * * * * /bin/sh /home/backup/hello.sh4. 检验定时任务是否执行
$ tail -f /home/backup/hello.txt完结撒花 ~ 个人总结,欢迎批评指正。
参考网址:
https://www.runoob.com/w3cnote/linux-crontab-tasks.html