在 Linux 中自动执行任务的推荐方法是什么?

在 Linux 中自动执行任务的推荐方法是什么?

我对 Linux 还不太熟悉,但这是我正在尝试做的事情。

我需要每隔 5 分钟左右将所有子目录和文件从一个目录复制到另一个目录,并使用新数据自动覆盖旧数据。

我也希望它在启动时运行。有什么办法吗?如果可以,我需要什么程序来安排自动化,以及我需要的命令行是什么。

答案1

我会用

rsync --archive --delete "fromdir/" "todir/"

这将比使用更有效cp,因为rsync只复制已更改的文件,并且即使这样也只复制更改本身,而不是整个文件。

如果您不希望删除todir已在 中删除的文件fromdir,则只需忽略该--delete选项。

--archive选项基本上告诉它保留文件的状态及其内容。请注意,如果您在 中有任何符号链接dir1,这将复制链接他们自己,不是它们链接到的文件。使用此标志与rsync使用类似cp -a

确保在fromdir/: 上使用结束斜线,这表示rsync复制内容该目录的目录本身换句话说,如果你忽略最后/,你将会得到

todir/
todir/stuff
todir/fromdir/
todir/fromdir/morestuff

而不是

todir/
todir/morestuff

答案2

您需要在 cron 中放置一个脚本,如何执行此操作,请阅读此处:http://www.foogazi.com/2006/12/07/understand-cron-jobs-in-5-minutes/

除了脚本之外,您还可以在 crontab 中键入要执行的命令,它看起来像:

*/5 * * * * cp -r /fromdir /todir

还要将以下行添加到 /etc/crontab 以在启动时执行它:

@reboot root cp -r /fromdir /todir

相关内容