Bash 命令在由 cronie 执行时异步运行

Bash 命令在由 cronie 执行时异步运行

我有一个 bash 脚本来备份我的树莓派,运行备份命令后我的电脑应该关闭。当我只是通过命令行运行脚本时,这是有效的。但当 cronie 执行时,它会立即跳转到 shutdown 命令,而不是等待备份完成。

对此我能做什么?

外壳脚本:

#!/bin/bash

ssh [email protected] dd if=/dev/mmvblk0 bs=1M | gzip -c > /path/to/backup/$(date -I) && systemctl poweroff

答案1

看起来只是ssh在后台运行。实际上ssh无法立即连接并退出gzip,也导致立即退出。但由于管道的退出代码是最后一个命令的退出代码(除非set -o pipefail之前使用过),因此执行了关闭命令。

如果您想使用不在相应用户的默认文件中的 SSH 密钥,那么您需要使用ssh以下选项告知密钥文件-i

ssh -i /home/user/.ssh/id_rsa [email protected] dd if=/dev/mmvblk0 bs=1M

相关内容