linux 带ssh和scp功能的集群控制脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #!/bin/bash #创建一个以.sc结尾的文件,把要操作的主机按顺序填写进去,多个IP另起一行顶格填写例如: #192.168.0.1 #192.168.0.2 #确保当前操作脚本的主机,已经可以免密到被操作主机,如未完成请自行解决。 do_command() { hosts=` sed -n '/^[^#]/p' *.sc` for host in $hosts do echo "" echo HOST $host ssh $host "$to_input" done return 0 } scp_command() { hosts=` sed -n '/^[^#]/p' *.sc` for host in $hosts do echo "" echo HOST $host scp -r ${to_scp #*/} $host:/tmp done return 0 } PS3= "选择要执行的命令按数字: 1)bash 或 2)scp (退出请按 3)exit 或 Ctrl+c): " select to_chose in ssh scp exit ; do case $to_chose in ssh ) while true ; do read -ep "输入要执行的Linux命令例:ls,df,free...(回到上一级输入" exit "):" to_input echo "------------------------------------------------------------------------->" echo -e "\033[31m执行命令 : " $to_input " \033[0m" if [[ $to_input == exit ]]; then break else do_command "$to_input" echo "------------------------------------------------------------------------->" fi done ;; scp ) while true ; do echo "当前目录(回到上一级输入" exit "): " ls read -ep "请输入要传送的文件或目录的名字(多个文件或目录以空格分隔):" to_scp #可以用ls查看非当前目录要传送的文件或目录,可用tab键查看内容和补全功能。 echo "------------------------------------------------------------------------->" echo -e "\033[31m传输的内容 : " ${to_scp #*/}" \033[0m" if [[ ${to_scp #*/} == exit ]];then break else scp_command "${to_scp#*/}" echo "------------------------------------------------------------------------->" fi done ;; exit ) break ;; *) echo -e "\033[35m输入的不是规定的参数,取消执行命令! (请输入数字1或2操作指令 bash /scp ,退出请输入数字: " 3/exit " )\033[0m" echo "" echo "=====================================================>" esac done |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~