ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## **如何调用** **file1.txt** 即将发送的文件 **dir1**目标目录,如果没写默认当前目录 ~~~ ./sync_files.sh file1.txt dir1 ~~~ ***** ``` #!/bin/bash # 自定义端口 port=22 #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Argument! exit; fi #2. 遍历集群所有机器 # 这里的 IP 只是示例, 请替换为你自己的 IP和端口 # for host in host1 host2 host3 for host in 192.168.1.128 192.168.1.129 192.168.1.130 do echo "====================远程服务器[$host]====================" #3. 遍历所有目录,挨个发送 for file in $@ do #4. 判断文件是否存在 if [ -e $file ] then #5. 获取父目录 pdir=$(cd -P $(dirname $file); pwd) echo ====================目标目录[$pdir]==================== #6. 获取当前文件的名称 fname=$(basename $file) ssh -p $port $host "mkdir -p $pdir" rsync -av -e "ssh -p $port" $pdir/$fname $host:$pdir else echo $file does not exists! fi done done #调用 #./sync_files.sh file1.txt dir1 ```