所以我正在 ssh'ing 到一个有几个虚拟机的路由器。它是使用 LDAP 设置的,因此每个 VM 具有相同的文件、设置等。但是它们分配了不同的内核,安装了不同的库和包。我不想单独登录每个 VM 并运行命令,而是想通过将脚本放在 .bashrc 中来自动化它。
所以我到目前为止:
export LD_LIBRARY_PATH=/lhome/username
# .so files are in ~/ to avoid permission denied problems
output=$(cat /proc/cpuinfo | grep "^cpu cores" | uniq | tail -c 2)
current=server_name
if [[ `hostname-s` != $current ]]; then
ssh $current
fi
/path/to/program --hostname $(echo $(hostname -s)) --threads $((output*2))
每个 VM 在登录时都会执行此脚本,因此我必须检查当前 VM 是否具有主机名以避免 SSH 循环。这个想法是运行程序,然后退出回到原点以恢复脚本。问题当然是该进程将在注销时终止。
有人建议我在主机名数组上使用 TMUX,但我不知道如何解决这个问题。