每个月运行的rsync都无法阻止

每个月运行的rsync都无法阻止

我以前从未使用过rsync进行备份。无论如何,我都不是高级用户,但我很喜欢 Linux。我按照网站上的说明进行操作(现已丢失网址),并设法将 rsync 设置为每月运行一次。当然,作为 rsync 的新手,我让它备份了整个根目录,正如你所知,这“方式”太多了。我以为我已经杀死了它,但每个月(或 30 天)它都会启动,填满我的驱动器。我找了又找,找不到从哪里启动rsync,或者是什么启动了rsync。

我刚开始的时候用的是cli。看起来它可能提到它设置了一个守护进程或进程来像 cron 一样运行它。我运行了 crontab -e 并在那里找到了它,并将其删除。它仍然在运行,所以显然我也设置了一些东西以另一种方式运行它。

您能告诉我如何找到它正在运行的位置以便我可以停止它吗? Linux Mint 20 Cinnamon Cinnamon 版本 4.6.7 Linux 内核 5.4.0-47-generic

答案1

一种快速而肮脏的方法来检查所有调用 rsync 的系统和用户 cron 作业,grep 是你的朋友:

grep -R rsync /etc/cron* /var/spool/cron

这将检查所有 crontab(/etc/crontab 和 /var/spool/cron/>USERNAMES>),以及系统位置 /etc/cron.d、/etc/cron.hourly、/etc/cron.daily、 /etc/cron.weekly 和 /etc/cron.monthly。因此,如果它是通过 cron 完成的,那么您就可以在那里找到它。

输出将采用以下形式:

/path/to/file/that/includes/match:line_that_matches

一旦知道它在哪里,您就可以编辑/删除/禁用该作业。

不过,这篇文章的未来读者需要注意的一件事是,如今 cron 并不是城里唯一的节目。 Cron 仍然很流行并且被大量使用,但是 systemd(当今大多数发行版使用的 init 系统)具有“计时器”。与 cron 作业类似,它们提供了按计划自动运行命令的工具。 Systemd-timer 确实比 cron 提供了更多的灵活性,但也更复杂,因此会出现更多问题......

由于 systemd 的组织方式,简单的 grep 是不够的。可能有更好/更简单的方法,但再次使用 grep,但这次使用 find 应该可以解决问题。像这样的东西(应该输出格式类似于上面):

for dir in /etc /run /lib; do
    find $dir/systemd -type f -name "*.timer" -exec grep rsync /dev/null {} \;
done

(要搜索“rsync”以外的内容,只需将其替换为您要使用的搜索词 - 如果它包含空格,请将其放在引号中)。

相关内容