我是 R 用户。我总是在校园的多台计算机上运行程序。例如,我需要运行 10 个不同的程序。我需要打开 PuTTY 10 次才能登录 10 台不同的计算机。并将每个程序提交给10台计算机(操作系统为Linux)。有没有办法同时登录10台不同的计算机并向它们发送命令?我使用以下命令来提交程序
nohup Rscript L_1_cc.R > L_1_sh.txt
nohup Rscript L_2_cc.R > L_2_sh.txt
nohup Rscript L_3_cc.R > L_3_sh.txt
首先设置 ssh,以便您无需输入密码即可登录(如果您不知道如何操作,请谷歌搜索)。然后编写一个脚本以 ssh 到每个远程主机来运行该命令。下面是一个例子。
#!/bin/bash
host_list="host1 host2 host3 host4 host5 host6 host7 host8 host9 host10"
for h in $host_list
do
case $h in
host1)
ssh $h nohup Rscript L_1_cc.R > L_1_sh.txt
;;
host2)
ssh $h nohup Rscript L_2_cc.R > L_2_sh.txt
;;
esac
done
这是一个非常简单的例子。您可以做得更好(例如,您可以将“.R”和“.txt”文件名放入变量中并使用它,而不是显式列出案例中的每个选项)。
我是一名优秀的程序员,十分优秀!