在 bash 文件中运行 docker 命令并使用 crontab 运行

Ari*_*him 1 bash cron docker

#!/bin/bash

docker exec -ti erpnext sh -c "cd /home/frappe/frappe-bench/ &&
/usr/local/bin/bench backup"

echo 'Hello, world.' >foo.txt
Run Code Online (Sandbox Code Playgroud)

上面的代码是我的 bash 文件。这里有两个命令

  1. 创建txt文件
  2. 执行docker容器

如果我运行这个命令

cd /home/arifur/workspace_python/erpdatabasebackup && bash backup_database.sh
Run Code Online (Sandbox Code Playgroud)

在终端然后它正在工作

但是当我在 crontab 中运行时

* * * * * cd /home/arifur/workspace_python/erpdatabasebackup && bash backup_database.sh
Run Code Online (Sandbox Code Playgroud)

那么只有 txt 文件创建工作,但 docker 容器不工作。

log*_*kai 5

The -ti requests to use a pseudo-tty and run in interactive mode but cron does not attach to any TTY. Try removing -ti as in

docker exec erpnext sh -c "cd /home/frappe/frappe-bench/ && /usr/local/bin/bench backup"
Run Code Online (Sandbox Code Playgroud)