主要参考 Linux 定时执行shell 脚本_spearhead_cai的博客-CSDN博客
1.首先写一个shell脚本文件,这里我们创建了一个脚本文件(script.sh),主要功能为进入test目录(/usr/local/timingtest/testsh/scripttest/test),对其中的test1文件追加内容(/usr/local/timingtest/testsh/scripttest/test/test1 ),并显示时间
cd /usr/local/timingtest/testsh/scripttest/test
echo "追加测试" >> /usr/local/timingtest/testsh/scripttest/test/test1
echo "$(date '+\%Y_\%m_\%d \%H:\%M:\%S')">>/usr/local/timingtest/testsh/scripttest/test/test1
-
这里需要绝对路径,所有执行文件内部,对另一个文件操作时,需要绝对路径,不能是相对路径,不然会无法执行脚本文件
2.设置脚本权限
chmod 777 script.sh
3.设置定时任务(crontab )
crontab命令(常用命令)
crontab –e //修改 crontab 文件,如果文件不存在会自动创建。
crontab –l //显示 crontab 文件。
crontab -r //删除 crontab 文件。
crontab -ir //删除 crontab 文件前提醒用户。
service crond status //查看crontab服务状态
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
基本格式
* * * * * command
分 时 日 月 周 命令
第1列表示分钟 00~59 每分钟用*
或者 */1
表示
第2列表示小时 00~23(0表示0点)
第3列表示日期 01~31
第4列表示月份 01~12
第5列标识号星期 0~6(0表示星期天)
第6列要运行的命令
此外每一列除了数字,还可以有这些符号,其含义如下所示:
* 代表任何时间,比如第一个 * 就代表一小时中的每分钟都执行
, 代表不连续的时间,比如 0 8,12,16 * * * 代表每天8,12,16点0分执行
- 代表连续的时间范围,比如0 5 * * 1-6 代表在周一到周六凌晨5点0分执行
*/n 代表每个多久执行一次,比如*/10 * * * *代表每隔10分钟执行一次
了解crontab常用命令及基本格式后,然后就可以设置定时任务了
*/1 * * * * sh /usr/local/timingtest/testsh/scripttest/script.sh
分 时 日 月 周 (*对应的参数,每分钟用*或者 */1表示,具体看网站介绍)
设置了之后会有几分钟延迟,最后的结果为: