ssh远程执行多个文件

我有两个本地文件,一个包含variables定义的config.sh ,另一个包含bash脚本的script.sh

本地,我可以这样做:

 source config.sh; bash script.sh 

我正在通过SSH寻找相同的东西,到目前为止,我得到了这个工作:

 ssh user@host 'bash -s' < script.sh 

但我不知道是否应该使用cat或一些inputpipe道<(...)来同时执行config.sh和script.sh。

什么是最好的,干净的方式来执行多个命令,需要一些内容与sshpipe道?

假设这两个脚本都在本地主机上,而不是远程主机上:

 cat config.sh script.sh | ssh -T remote_host bash 

如果您想在远程端强制使用伪TTY分配,您可能需要使用'-t'标志。 本地SSH进程不会有一个,因为你的标准input来自pipe道。 如果不是远程端的默认shell,只需要在命令行末尾添加string“ bash ”即可。 此外,请注意,除非您的“variables定义”导出有问题的环境variables,否则您的原始代码将无法工作。

使用EXPECT从远程计算机运行脚本,这样脚本就像在本地计算机上一样执行。 这里是关于如何使用EXPECT的简短演示。

http://kahimyang.info/kauswagan/howto_blogs/704-using_expect_script_to_automate_ssh_logins_and_do_routine_tasks_accross_multiple_hosts