我有一个 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