您可以为此使用 ssh。例如:
for server in server1 server2 server3; do ssh $server mv oldfilename newfilename; done
Run Code Online (Sandbox Code Playgroud)
您可能希望将服务器列表存储在环境变量中:
export MYLISTOFSERVERS="server1
server2
server3
...
servern
"
Run Code Online (Sandbox Code Playgroud)
以及 bashrc(或专用脚本)中的函数(例如):
runforeachserver () {
for server in $MYLISTOFSERVERS; do
ssh $server "$@"
done
}
Run Code Online (Sandbox Code Playgroud)
所以你可以在你想为你的每台服务器执行任务时调用它。例如,根据需要重命名文件:
runforeachserver mv oldfilename newfilename
Run Code Online (Sandbox Code Playgroud)
或(只是为了向您展示如何转义命令以通过 ssh):
runforeachserver date -d \"month ago\" +\"%Y-%m-%d\"
2011-04-04
2011-04-04
2011-04-04
2011-04-04
2011-04-04
2011-04-04
Run Code Online (Sandbox Code Playgroud)
显然,这可以像您希望的那样健壮(启用服务器名/sshport 数组)、语法检查等...