linux系统定时执行shell脚本
我们可能会经常需要在linux系统中做一些重复而又繁琐的操作,为了解放自己,我们需要将这些东西写到定时任务里面,让它每天执行
大概思路如下
- 根据自己的需求完成shell脚本
- 将脚本的执行语句加到linux自带的crontab文件中
废话少说 上例子
我写了一个 test.sh的shell脚本,目录是/home/joe/shell/test.sh
-
chmod 777 test.sh //给test文件赋予可执行权限
-
crontab -e //编辑crontab文件
-
0 7 * * * /home/joe/shell/test.sh >> /home/joe/shell/test.log 2>&1
? //在文件最后加这行 , 每天早上7点会执行这条语句,并将执行日志打印在同目录的test.log下
-
crontab -l //查看定时任务情况。
-
进入目录查看日志验证定时任务是否正常运行。
crond定时任务:
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
常见的问题:
-
写好sh脚本 然后利用Crontab -e 进行部署,00 11 * * * /home/dir/baidu_update_data.sh > /file.log 2>&1类似于之中格式,
-
/bin/bash^M: bad interpreter: No such file or directory
报错的原因是:在Windos下与Linux下编辑,格式会有差异,Windows上传的东西,导致格式变了,所以只需要改一下格式
vi name
:set ff=unix
-
Could not open input file for reading 报错:注意脚本放的目录和权限。
-
观察执行成功是否,需要看日志;日志非常重要!!!