为什么 Linux 每天都会在同一时间重新启动?

为什么 Linux 每天都会在同一时间重新启动?

我有一个气象站,它将数据发送到 Raspberry PI,其中运行一个 Linux 服务器来获取数据并存储它。除了一件小事之外,一切都运转良好。 Raspberry 通过 USB 电缆连接到气象站室内显示屏。显示器设置为在开机时再现声音。所以基本上,每天晚上凌晨3点我都会被这种声音吵醒。然后我通过 ssh 连接到 Raspberry 并输入此命令来访问日志,以查看当时发生了什么:

nano /var/log/syslog

我发现了这一行:

Jul 21 02:53:01 weatherstation CRON[25991]: (root) CMD (sudo reboot)

这每天都会在同一时间重复。所以,显然我在 crontab 中有一些东西可以不断重新启动我的树莓派。显然,如果设备重新启动只是为了放松一下,那是可以的,但在凌晨 3 点就不行了,哈哈。

然后我打开:

nano /etc/crontab

我发现了这 4 行:

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

所以没有明确的 sudo restart,但我怀疑 /etc/cron.daily 中的某些内容正在执行该指令。所以我打开了文件夹 cron.daily 并在里面找到了这些文件:

apache2  apt-compat  aptitude  bsdmainutils  cracklib-runtime  dpkg  exim4-base  logrotate  man-db  passwd

我唯一感兴趣的文件是apt-compat.在那里我发现了这个:

# run daily job
exec /usr/lib/apt/apt.systemd.daily

问题是,这个文件对我来说太复杂了。我不知道里面使用的编程语言,也不知道技术上是做什么的。所以我想将重启时间从凌晨 3 点改为上午 10 点,但我不明白如何做。

感谢大家的关注。

答案1

从日志消息中,我们看到它是通过 cron (而不是例如 systemd 计时器)运行的,并且命令正是sudo reboot.

大多数系统提供的 cron 作业都位于 中的文件中/etc/cron.d/,因此这是一个可以查看的地方。

root 用户的个人 crontab 中也可以有一些东西。应使用 和crontab -l来查看和编辑每个用户的 crontab crontab -e,但它们通常驻留在/var/spool/cron/crontabs/或某个此类目录中。 (这是 Debian 上的路径,在其他系统上可能会有所不同。)不过,通常情况下,您不会在那里看到系统提供的东西。

然后是/etc/cron.daily类似的目录,其中的文件只是可执行文件(通常是 shell 脚本),某些工具每天/每周/每月运行这些文件。尽管这些可能会提供不同类型的日志条目,因为它们不直接从 cron 运行。

在紧要关头,你总是可以退回到grep -re "sudo reboot" /etc/ /var/等等。

有关的:`/etc/crontab`、`/etc/cron.d/` 和 `/var/spool/cron/crontabs/root` 下的文件之间的区别?我想我也将链接到这里:CentOs7中如何查看所有cron记录

相关内容