【发布时间】:2017-06-11 11:39:17
【问题描述】:
我正在尝试让脚本在启动时运行,但如果我通过 SSH 连接到我的 Raspberry Pi,则什么也不做。
到目前为止,我已经让 crontab 通过 @reboot sleep 30 && sudo bash ./checkssh.sh 自动运行脚本 checkssh.sh 并且 './checkssh.sh' 包含以下内容:
#!/bin/bash
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
echo "SSH CONNECTED"
else
./autobackup.sh
fi
从 SSH 终端运行 checkssh.sh 会返回预期的“SSH CONNECTED”,并在 SSH 未正常连接时让它在重新启动时从 crontab 自动运行。但是,当它在启动时运行并且我在它可用时立即通过 SSH 连接时,它仍然运行脚本。我不确定这是哪里出了问题。
我需要它自动运行,如果没有 SSH 连接运行 autobackup.sh ,但如果有 SSH 连接,则不要运行任何东西。我用于 SSH 连接的设备可能不同,使用的网络也可能不同,因此依赖特定 IP 的脚本并不理想。
感谢您的帮助:)
【问题讨论】:
-
cron和sshd是两个非常独立的程序,它们都与启动时运行的服务无关。我不知道 Raspberry Pi 附带了什么,但您正在寻找正确配置类似upstart或systemd以在启动时运行autobackup.sh。
标签: linux bash ssh raspberry-pi