每天凌晨 12 点使用 cron 自动重启 apache 服务

restart apache service automatically using cron 12AM daily

我在测试服务器中安装了 CentOs。

我想每天 运行 一个 cron 作业(cron 需要在凌晨 12 点 运行 apache 服务器)。

我的 cron.daily 饲养员位于 /etc/cron.daily

请告诉我如何实现这个的步骤。

通常我使用下面的命令来重启apache服务:

service httpd restart

我想每天凌晨 12 点使用 cron 自动重启 apache 服务。

提前致谢。

我明白了,并逐步向您介绍如何将 cron 作业添加到您的系统中:

  1. 使用 SSH 登录您的服务器
  2. 键入 crontab -l 以显示 cron 作业列表,
  3. 键入 crontab -e 编辑您的 crontab,
  4. 添加 0 4 * * * /etc/init.d/mysqld restart 以在每天凌晨 4 点重新启动 Mysql,
  5. 添加 0 5 * * * /etc/init.d/httpd restart 以在每天凌晨 5 点重新启动 Apache 并且
  6. 添加 0 24 * * * /etc/init.d/httpd restart 以在每天凌晨 12 点重新启动 Apache
  7. 保存文件,
  8. 重新检查 crontab -l

虽然@einterview 的回答几乎是正确的,但重要的是要注意分钟列中的 * 将 运行 作业 分钟小时。如果打算每小时 运行 一次,步骤为:

  1. SSH 进入服务器。

  2. 获取当前用户的工作列表 $ crontab -l

  3. 使用 $ crontab -e 编辑工作列表(默认编辑器将打开)

  4. 在 4:00am

  5. 为 mysql 添加 0 4 * * * service mysql restart
  6. 在 5:00am

  7. 为 apache2 添加 0 5 * * * service apache2 restart
  8. 在12:00上午

  9. 为apache2添加0 0 * * * service apache2 restart
  10. 保存并关闭(nano 中为 Ctrl+O 和 Ctrl+X)

  11. 重新检查 $ crontab -l

按照此建议添加: 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 次是不可接受的

我还不能在这里对最后一个发表评论,但实际上你可以只使用 0 0 * * * 然后它会通过 a-ok。

其他答案中没有说明,所以我在这里说一下。当前用户和 root 用户有不同的 cron 作业列表。在我的 Raspberry Pi 4 上,按上面的方式做是行不通的,因为当前用户没有重启服务的权限。

然而这有效:

sudo crontab -l(列出当前作业) sudo crontab -e(编辑 cron 作业列表) 0 0 * * * systemctl restart openvpn.service (将此行添加到底部) 保存并关闭(在 nano 中为 Ctrl+O、ENTER、Ctrl+X) sudo crontab -l(添加了验证作业)

换句话说,"crontab -l" 将给出与 "sudo crontab -l" 不同的列表。在上述命令中添加 "sudo" 使作业 运行 成为 root。

  1. 通过 运行ning 获取服务路径:which service。这应该 return 类似于 /usr/sbin/service
  2. 通过 crontab -e 添加条目到 contrab 并输入以下内容:@daily /usr/sbin/service httpd restart
  3. 如果您不想在 运行 时向您发送电子邮件,您应该添加以下内容:@daily /usr/sbin/service httpd restart > /dev/null 2>&1
  4. 查找cron每天运行s,运行的时间:grep run-parts /etc/crontab

PS: 获取服务的完整路径很重要。

您可以使用以下命令:

crontab -e

向 cron 添加以下行:

0 12 * * * 服务 httpd 重启

或使用以下命令。

echo "0 12 * * * 服务 httpd 重新启动" |定时任务-

这个站点是一个很好的 cron time https://crontab.guru

试穿 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