【发布时间】:2010-03-02 10:00:52
【问题描述】:
这是 bash-fu 巫师的一个。不,实际上,我只是在开玩笑,除了我之外,你们可能都知道这一点..
我正在尝试创建一个备份 shell 脚本。这个想法相当简单:在某个文件夹中查找超过 7 天的文件,将它们 tar/gzip 压缩到另一个目录,然后删除它们。问题是,我不确定我是否有足够的权限在目标目录中创建 tar/gzip 文件。是否有任何(正确的)方法来检查文件是否已成功创建,如果是,则删除文件。否则,请跳过该部分并且不要破坏客户的数据。我听说他们不太喜欢那个。
这是我目前所拥有的:
01: #!/bin/bash
02:
03: ROOTDIR="/data/www"
04:
05: TAR="${ROOTDIR}/log/svg_out_xml/export_out_ack_$(date +%Y-%m-%d).tar"
06: cd ${ROOTDIR}/exchange/export/out_ack/
07: find . -mtime +7 -type f -print0 | xargs -0 tar -cf "${TAR}"
08: gzip ${TAR}
09: find . -mtime +7 -type f -print0 | xargs -0 rm -f
基本上,我需要检查第 7 行和第 8 行是否一切正常,如果是,则执行第 9 行。
另外,我想为这些操作创建一个日志文件,这样我就知道一切正常(这是一个每晚的 cron 作业)。
【问题讨论】:
-
所有的 cmets 都来了,使用一些预先做好的保险柜。
-
经验之谈,递归? :)
-
你的标签是“bash”,但你的 shebang 是“sh”。
-
我接受了 Dennis Williamson 的回答,因为他是唯一解决日志记录问题的人,但所有建议都非常有帮助,谢谢大家!
标签: bash shell logging scripting