/kit/bkp
文件将在 /kit 目录中每 5 分钟生成一次。想要每 2 小时打包所有文件并将这些文件移动到目录
答案1
find your_path -t f -mmin 5 -exec tar -zcvf your_compress_file.tar.gz {} +
您可以制作一个脚本并将脚本放入crontab
.
答案2
编写一个脚本并将其设置为与 cron 作业或 systemd 计时器一起运行。tar
在脚本中包含适当的命令并使用 tar 的排除标志以避免/tar/bkp
对文件夹进行去皮。并find
与该-mmin 120
标志一起使用,将压缩的文件限制为最近 120 分钟内修改的文件。
例如:
#!/bin/bash
source='/kit'
dest='/kit/bkp'
find "${source}" -mmin 120 -exec \
tar cpf "${dest}/$(date +'%Y%m%d%H').tar" --exclude="${dest}" {} +
该脚本将使用 执行/bin/bash
,定义源路径和目标路径,仅选择过去 120 分钟内修改过的文件,然后在目标文件夹中创建一个以年-月-日-小时命名的 tar 文件,保留权限和所有权,并排除目标文件夹。
然后crontab -e
以具有读取和执行权限的用户身份键入/kit
...写入、读取和执行权限/kit/bkp
...以及对我们之前创建的脚本的读取和执行权限。在 cron 文件中添加如下行:
0 */2 * * * /path/to/your/script.sh > /dev/null
这将每 2 小时运行一次脚本,并通过管道将 stdout 发送到以/dev/null
保持脚本静默,除非它产生错误。如果发生错误,Cron 应该向您发送消息。