crontab -> shellscript -> docker -> 将输出重定向到本地文件

crontab -> shellscript -> docker -> 将输出重定向到本地文件

我目前正在从 rsync 切换到基于 borg 的备份。

一切正常,除了将 Borg 的输出传输到我的日志文件之外。

我的设置如下:

  • 我尝试在 docker 中完成所有操作,以使我的服务器尽可能精简,并能够快速重建。所以我通过 docker 容器运行 borg。
  • 一个中央 local_backup.sh,发布几个备份任务,包括 borg 任务
  • 在脚本内部,我通过“docker run..”执行 borg 备份(摘录):
echo "--- nextcloud backup"
docker run --rm \
    -e BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes \
    -v /root/.cache:/root/.cache \
    -v /mnt/G/Backup/automatic/borg:/backup \
    -v /mnt/E/dockervolumes/freundx-nextcloud/nextcloud:/nextcloud:ro \
    peez/playground \
    borg create --stats --verbose --compression lz4 --exclude '*.log*' /backup::nextcloud-{now} /nextcloud

echo "--- nextcloud done"
  • 该脚本通过 crontab 调用:
50 8    * * *   root    /opt/freundx/admin_scripts/local_backup.sh 2>&1 >> /mnt/E/logs/local_backup.log

备份本身运行正常。唯一的问题是在日志文件中,我只得到了两个“回声”,而不是 borg 到我的 local_backup.log 文件的输出。你知道我遗漏了什么吗?

顺便说一句。当我通过命令行从 crontab 文件执行相同命令时,它不起作用。输出到控制台,而不是文件。

相关内容