linux系统定时执行shell脚本


我们可能会经常需要在linux系统中做一些重复而又繁琐的操作,为了解放自己,我们需要将这些东西写到定时任务里面,让它每天执行

大概思路如下

  • 根据自己的需求完成shell脚本
  • 将脚本的执行语句加到linux自带的crontab文件中

废话少说 上例子

我写了一个 test.sh的shell脚本,目录是/home/joe/shell/test.sh
  1. chmod 777 test.sh //给test文件赋予可执行权限

  2. crontab -e //编辑crontab文件

  3. 0 7 * * * /home/joe/shell/test.sh >> /home/joe/shell/test.log 2>&1

    ? //在文件最后加这行 , 每天早上7点会执行这条语句,并将执行日志打印在同目录的test.log下

  4. crontab -l //查看定时任务情况。

  5. 进入目录查看日志验证定时任务是否正常运行。


crond定时任务:

每五分钟执行 */5 * * * *

每小时执行 0 * * * *

每天执行 0 0 * * *

每周执行 0 0 * * 0

每月执行 0 0 1 * *

每年执行 0 0 1 1 *


常见的问题:
  1. 写好sh脚本 然后利用Crontab -e 进行部署,00 11 * * * /home/dir/baidu_update_data.sh > /file.log 2>&1类似于之中格式,

  2. /bin/bash^M: bad interpreter: No such file or directory

报错的原因是:在Windos下与Linux下编辑,格式会有差异,Windows上传的东西,导致格式变了,所以只需要改一下格式

vi name

:set ff=unix

  1. Could not open input file for reading 报错:注意脚本放的目录和权限。

  2. 观察执行成功是否,需要看日志;日志非常重要!!!

相关