备份 bash 脚本未对其 tarball 进行 gzip 压缩

备份 bash 脚本未对其 tarball 进行 gzip 压缩

我有一个作为 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适当。

相关内容