2023-03-23-CentOS新建定时任务
模拟场景
在CentOS中,新建一个定时任务,在每天的8、12、14、18点自动执行shell脚本
可以使用crontab
命令来
- 打开终端,输入以下命令来编辑
crontab
文件
crontab -e |
- 在编辑器中添加以下命令:
0 8,12,14,18 * * * /path/to/your/script.sh |
如果你想每隔6个小时执行一次,可以使用以下方式:
0 */6 * * * /path/to/your/script.sh |
这个语句的含义是每隔6小时执行一次 /path/to/your/script.sh
脚本。0
表示每次执行的开始时间是整点,*/6
表示每隔6小时执行一次,* * *
表示每天、每月、每周都执行。
/path/to/your/script.sh
这里最好使用你的shell脚本的绝对路径
script.sh
pwd # /root |
需要注意的是,第一行命令的
pwd
这里的输出结果是/root
,不是script.sh
所在的目录,我们如果要执行其他的命令,需要cd
到相应的文件夹
检测crontab服务
为了使 crontab
的任务生效,确保已经启用了 crond
服务。可以通过以下命令检查服务是否已经启动:
systemctl status crond |
如果没有启动,可以通过以下命令启动服务:
systemctl start crond |
如果想要每次任务执行时收到执行的结果,可以在脚本中添加输出语句或将输出重定向到日志文件中。
查看crontab日志
可以使用以下命令来查看crontab最近的几条日志
tail /var/log/cron |
其他问题
脚本没有按时执行
运行完脚本后,系统控制台显示了一个日志
You have mail in /var/spool/mail/root |
我们查看内容
From root@ztkj-03.localdomain Thu Mar 30 10:49:01 2023 |
如果你确认脚本内容是正确的,可能是因为脚本的权限不够
这里我们给脚本提权
chmod +x /var/lib/jenkins/workspace/run.sh |
同时要注意脚本里面的命令,如果有需要提权的,也要处理。
例如,我们脚本文件里面使用了一个日志文件log.txt
我们给这个文件也提权
chmod 666 /path/to/your/file/log.txt |
/path/to/your/file/log.txt
是你的文件路径。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 码行!
评论
ValineDisqus