每当特定文件夹被修改时,Shell 脚本都会创建一个 tar 文件

问题描述

shell 脚本新手,只想了解如何编写 shell 脚本以在特定目录被修改时创建 tar 文件

当我们说修改时,就像在特定目录中添加/删除文件一样。

Tarfile 应该类似于 nameofDir_timestamp.tar

find path/to/dir -mtime 10m exec tar -cvf {} ;

解决方法

假设你已经安装了 bash,你可以这样做

#!/usr/bin/env bash
dirname='folder'
dirlastmod='folder-last-modified'

[[ ${dirlastmod} -nt ${dirname} ]] && exit

timestamp=$(date '+%s')

tar -cvf "${dirname}_${timestamp}.tar" "${dirname}"
touch "${dirlastmod}"

并将其添加到 cronjob。

这将检查目录 folder 是否比文件 folder-last-modified 新,如果不是则退出。如果是,它将创建目录 folder 的 tar 文件,并使用 touch 更新/创建 folder-last-modified 文件上的时间戳。