通过网络发送shell命令到Linux服务器
有没有一种工具可以让我在没有SSH的情况下通过网络发布命令?通过网络发送shell命令到Linux服务器
例如,我想创建一个配备DVD刻录机的新Linux机箱,并通过网络发送此命令“growisofs -dvd-compat -Z/dev/dvd -dvd-video dvd”要刻录的文件。该系统将自动化,因此我需要一些能够轻松高效地完成此项任务的系统。
这里是我所阐明的答案形式的评论。
在本地主机上,运行ssh-keygen
,很可能将密钥保存在默认位置并且不使用密码短语。接下来,使用ssh copy-id <[email protected]>
将公钥复制到远程主机。
您的脚本,做这样的事情:
scp "$FILE_TO_BURN" [email protected]$REMOTE_HOST:"$BURN_DROP_DIR"
ssh [email protected]$REMOTE_HOST $BURN_COMMAND
ssh [email protected]$REMOTE_HOST rm "$BURN_DROP_DIR/$(basename $FILE_TO_BURN)"
随时通过捕获SSH命令的退出状态/输出错误检测割肉出来。您可能还想考虑这样做,而不使用sshfs(由大多数发行版打包)之类的文件首先复制整个文件,以装载包含要在网络上刻录的文件的目录。
其实我应该说我的问题是如何使程序网络可访问。我希望人们能够执行我的PHP脚本并让我的PHP脚本动态执行刻录程序。所以是有PHP执行 “SCP ”$ FILE_TO_BURN“ $ REMOTE_USER @ $ REMOTE_HOST:” $ BURN_DROP_DIR” SSH $ REMOTE_USER @ $ REMOTE_HOST $ BURN_COMMAND SSH $ REMOTE_USER @ $ REMOTE_HOST RM “$ BURN_DROP_DIR/$(基名$ FILE_TO_BURN)” 真做到这一点的最佳方式? – Chris 2009-08-29 00:24:29
为什么使用ssh时遇到问题?它可以很容易地用来发出命令,再加上sftp/ftp来复制你想要刻录的文件。 – Cascabel 2009-08-28 23:28:00
试图阻止您的回复:我想知道是否可能是您要避免的SSH密码提示?您不必使用密码登录 - 您可以使用公钥/私钥对。请参阅man手册中的ssh-keygen和ssh-copy-id。 – Cascabel 2009-08-28 23:34:33
@Jefromi:也许他不知道ssh可以用于单个命令,并且可以配置为在不提示输入密码的情况下安全地运行。 – 2009-08-28 23:37:53