繁体   English   中英

如何使用ssh从命令行执行初始化脚本

[英]how to execute init scripts from the command line using ssh

ssh -t user@server1 "ls -al /root/test/"

上面提到的代码可以正常工作,并显示测试目录文件夹的所有内容,但是此代码失败

ssh -t user@server1 "/etc/init.d/mysql start"

它没有启动mysql服务器,我已经登录到服务器并使用相同的命令来启动mysql服务器

有人可以解释这种行为吗? 我在做什么错了有点困惑:(

做这样的事情:

ssh user@hostname "/etc/init.d/mysql start < /dev/null > /tmp/log 2>&1 &"

ssh需要使用stdin和stdout进行交互。 这将允许它执行此操作,并将输出重定向到有用的位置。

我不确定这种行为的根源,可能是因为ssh分配了伪终端。 但是,您可以对sudo使用解决方法:

ssh -t user@server1 "sudo service mysql start"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM