我对 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