我有一个作为 cron 运行的 bash 脚本来备份服务器上的文件。
#!/bin/bash
FILE=/path/to/backup_$(date +%Y%m%d).tar
tar -cf $FILE /backup/this /and/that /and/someotherfiles
gzip $FILE
当我直接使用以下命令运行脚本时:
sudo bash ./backup-files.sh
它对文件进行了 gzip 压缩,但昨晚 cron 运行时,它将其保留为 tar。cron 是否会在某处保存日志以指出为什么会出现这种情况?
答案1
备份所在的分区是否已到达极限?
您的脚本已创建 tarball,但 gzip 没有剩余空间来压缩它。
(您可以将这两个命令与 tar 的 -z 标志组合起来)
哎呀,我忘了一件事:在 tar 命令中添加 -v 标志。它会显示它的作用。
答案2
正如 Pierre 所提到的,您可能想要使用 -z 标志。通常,我总是使用 tar zcvfP 来备份整个目录并保留其结构和权限。v 标志也在那里,也很有用。
答案3
如果再次发生脚本无法执行您想要的操作的情况,您可以set -x
在脚本顶部添加。它将准确输出其执行的操作,并且此输出通常有助于查找错误。如果您将其作为 cronjob 调用,请确保设置$EMAIL
适当。