我在测试服务器上安装了CentOs。
我想每天运行一个cron(cron需要每天在12AM运行Apache服务器)。
我的cron.daily文件夹位于/etc/cron.daily
请告诉我如何实现此操作的步骤。
通常我使用以下命令重新启动apache服务:
service httpd restart
我想使用cron在每天的凌晨12点自动重新启动apache服务。
提前感谢。
我在测试服务器上安装了CentOs。
我想每天运行一个cron(cron需要每天在12AM运行Apache服务器)。
我的cron.daily文件夹位于/etc/cron.daily
请告诉我如何实现此操作的步骤。
通常我使用以下命令重新启动apache服务:
service httpd restart
我想使用cron在每天的凌晨12点自动重新启动apache服务。
提前感谢。
虽然@ einterview的答案几乎正确,但需要注意的是,在分钟列中使用 *
将运行该小时的每一分钟。如果想要每小时运行一次,则操作步骤如下:
SSH进入服务器。
使用 $ crontab -l
获取当前用户的作业列表
使用$ crontab -e
编辑作业列表(默认编辑器将打开)
添加0 4 * * * service mysql restart
,在早上4点重启mysql
添加0 5 * * * service apache2 restart
,在早上5点重启apache2
添加0 0 * * * service apache2 restart
,在午夜12点重启apache2
保存并关闭(nano中为Ctrl + O和Ctrl + X)
使用 $ crontab -l
重新检查
/usr/sbin/service
而不是service
。 - user3673whereis service
的命令。 - Oylexsystemctl restart [service]
命令来代替已经废弃的service
命令。 - JuliSmzsudo crontab -e
(假设你已经以非root用户登录),因为用户的crontab没有权限重启服务。 - Mint我明白了,以下是逐步向您展示如何将cron作业添加到系统中:
crontab -l
以显示cron作业列表crontab -e
编辑您的crontab0 4 * * * /etc/init.d/mysqld restart
以在每天早上4点重启Mysql0 5 * * * /etc/init.d/httpd restart
以在每天早上5点重启Apache,并且0 24 * * * /etc/init.d/httpd restart
以在每天午夜12点重启Apachecrontab -l
重新检查which service
获取服务路径,它应该返回类似于/usr/sbin/service
的内容。crontab -e
添加条目到cron表中,输入以下内容:@daily /usr/sbin/service httpd restart
@daily /usr/sbin/service httpd restart > /dev/null 2>&1
grep run-parts /etc/crontab
注:获取service的完整路径非常重要。
我还不能在这里发表评论,但实际上你可以使用0 0 * * *,然后它就会正常运行。
在 ubuntu 20.04.3 LTS
上尝试过
sudo crontab -e
0 8 * * * /home/<user>/restart_service.sh
# Runs above crontab 8AM everyday.
在 restart_service.sh
文件内部
#!/bin/bash
systemctl restart my_service.service
execute
提供适当的permissions
chmod u+x /home/<user>/restart_service.sh
按照这个建议添加:
0 12 * * * /etc/init.d/httpd restart
0 24 * * * /etc/init.d/httpd restart
我得到了"/tmp/crontab.D6cOzs/crontab":3: bad hour
errors in crontab file, can't install.
只有设置为12才能正常工作,所以我认为24是不可接受的。