nLi*_*ked 6 command-line scripts automation files sort
我正在运行一个不必要的复杂脚本,它看起来类似于这个命令:
find /home/user/videos/*.avi -mtime +0 -exec mv -f {} "/home/nb/videos/1 day old" \;
Run Code Online (Sandbox Code Playgroud)
然后我运行相同的命令,但这次,从“1 天前”文件夹到“2 天前”文件夹。还有一些命令会一直重复到 7 天!因此,每天,前一个“X 天前”文件夹中的文件都会移动到第二天的文件夹中。
我基本上是在尝试自动组织文件,在 cron 中运行,将 X 天之前的文件移动到正确的文件夹中。它效率低下,但我确实需要这样做。有没有更简单、更有效的方法?
一旦到达 7 天前的文件夹,我就有了最后一个命令,可以从最后一个文件夹中删除 7 天前的文件。
我使用(对于类似的情况)一种非标准方式:logrotate
。
这会将所有视频备份到/home/user/videos
文件中/home/nb/videos/backup/videos.tar
(每天),然后自动将旧tar
文件移动到等...1.tar
。...2.tar
超过 7 天的备份将被删除。
我还mv /home/user/videos/*.avi /var/tmp
保留了一份视频副本,以防出现问题。
要激活此 logrotate 配置,请将与此类似的文件放入目录中/etc/logrotate.d
:
/home/nb/videos/backup/videos.tar {
rotate 7
daily
notifempty
nocreate
nocompress
missingok
postrotate
if ls /home/user/videos/*.avi > /dev/null 2>&1; then
tar cf /home/nb/videos/backup/videos.tar /home/user/videos/*.avi
mv /home/user/videos/*.avi /var/tmp
fi
endscript
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅man logrotate
。
归档时间: |
|
查看次数: |
1087 次 |
最近记录: |