问题描述
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
文件上的时间戳。