输出 bash 日志

输出 bash 日志

因此,我每周都会对一些超过 1 个月的文件执行移动脚本,如下所示:

#!/bin/bash
echo "Moving Recordings Older than 30 days!";

/bin/find /var/services/homes/recordings/recording_list/ -type f -mtime +30 \
          -exec mv '{}' /var/services/homes/recordings/Old/recording_list/ \;

我希望脚本创建一个带标记的日志文件并记录找到和移动了多少个文件,每周创建一个新的日志文件,有什么想法吗?

谢谢,

答案1

要获取日志文件,请添加选项-vmv收集输出:

find srcdir  -type f -mtime +30 -exec mv -v {} destdir \; >output.log

如果您希望日志文件包含日期并且您拥有最新版本的 bash (>=4.2-alpha),请使用:

find srcdir  -type f -mtime +30 -exec mv -v {} destdir \; >"$(printf 'file%(%F)T.log' -1)"

如果您没有最近的 bash,请使用date

更快版本

为了更快的速度,请使用-exec ... +

find srcdir  -type f -mtime +30 -exec mv -vt destdir {} + >|"$(printf 'file%(%F)T.log' -1)"

这样就无需mv为找到的每个文件调用一个新进程,而是使用一个实例来移动多个文件mv

相关内容