当前位置: 首页 > news >正文

苏州建站网站模板鸿星尔克网络营销

苏州建站网站模板,鸿星尔克网络营销,网站开发的项目,合肥网站建设策划方案在日常服务器操作中,很多时候我们需要同时操作多个服务器。特别对于那些每个服务器都需要操作相同命令的场景,不断的切换命令会话窗口会比较麻烦。基于此,编写了本文中的 fastsh 脚本用于轻度解决这种问题,提高一定的便利性。 使…

在日常服务器操作中,很多时候我们需要同时操作多个服务器。特别对于那些每个服务器都需要操作相同命令的场景,不断的切换命令会话窗口会比较麻烦。基于此,编写了本文中的 fastsh 脚本用于轻度解决这种问题,提高一定的便利性。

使用MacOS命令行、LinuxOS命令行、Windows的PowerShell 的情况下,SSH工具都可以免掉,对于服务器临时性操作会特别方便。重度服务器运维还是推荐使用专业的 SSH 工具连接操作。

配置步骤如下:

1、完整的脚本内容见下文,复制内容创建一个 fastsh.sh 脚本。
2、使用命令 chmod +x fastsh.sh 为脚本授可执行权限。
3、在用户的 .bashrc 或系统全局的 profile 文件最下面添加别名设置命令 alias fsh='/path/to/your/fastsh.sh',并使用 source 命令使之生效(例如:source /etc/profile)。
4、打开脚本,在前面前面的 SERVERS 块中维护自己的服务器清单。
5、因为脚本基于 sshpass 组件运行,所有确保服务器已经安装,检查命令 sshpass -V

使用示例

#使用参数all,所有服务器都执行命令“ls -l”
fsh all ls -l
#指定具体服务器别名执行命令
fsh s1 ls -l
#指定多个服务器别名执行命令
fsh s1,s3 ls -l

如下是脚本 fastsh.sh 全部内容:

#!/bin/bash# 定义包含服务器别名、IP、用户名和密码的数组
declare -a SERVERS=(# 添加服务器列表,格式:别名:IP@账号#密码"s1:192.168.1.10@root#123456""s2:192.168.1.11@root#123456""s3:192.168.1.21@root#123456789"
)# 日志文件路径
LOG_FILE="/var/log/fastsh.log"# 获取客户端IP地址
CLIENT_IP=$(echo $SSH_CLIENT | awk '{print $1}')
if [[ -z "$CLIENT_IP" ]]; thenCLIENT_IP="未知客户端IP"
fi# 日志的公共内容
LOG_MSG_PRE="$(date '+%Y-%m-%d %H:%M:%S') $CLIENT_IP"# 检查是否提供了足够的参数
if [ $# -lt 2 ]; thenlog_entry="$LOG_MSG_PRE 使用方法: $0 {all|别名[,别名,...]} \"要执行的命令\""echo "$log_entry" | tee -a "$LOG_FILE"exit 1
fi# 判断第一个参数是否为 'all' 或者是别名列表
target_all=$1
shift # 移除第一个参数,剩下的作为命令if [[ "$target_all" == "all" ]]; thentarget_aliases=()
elseIFS=',' read -r -a target_aliases <<< "$target_all"
fi# 提取剩余命令行参数作为要执行的命令
COMMAND="$@"# 初始化变量用于存储匹配到的服务器数量
match_count=0# 函数:执行命令到指定服务器并记录日志
execute_command() {IFS=':' read -r alias ip_user_pass <<< "$1"IFS='@#' read -r ip user pass <<< "$ip_user_pass"# 控制台输出console_message="正在执行命令于: $alias ($ip) 使用账户: $user"echo "$console_message"# 日志条目,包括命令内容log_entry="$LOG_MSG_PRE $console_message, 命令: $COMMAND"echo "$log_entry" >> "$LOG_FILE"# 执行远程命令(不记录结果到日志文件)sshpass -p "$pass" ssh -o StrictHostKeyChecking=no "$user@$ip" "$COMMAND"# 执行远程命令(并将结果也记录到日志文件)#sshpass -p "$pass" ssh -o StrictHostKeyChecking=no "$user@$ip" "$COMMAND" 2>&1 | while IFS= read -r line; do#    echo "$LOG_MSG_PRE $line" >> "$LOG_FILE"#    echo "$line"#done
}# 如果指定了 'all',则循环遍历所有服务器执行命令
if [[ ${#target_aliases[@]} -eq 0 ]]; thenfor server in "${SERVERS[@]}"; doexecute_command "$server"done
else# 遍历每个服务器并查找匹配项matching_servers=()for server in "${SERVERS[@]}"; doIFS=':' read -r alias ip_user_pass <<< "$server"for target_alias in "${target_aliases[@]}"; doif [[ "$alias" == "$target_alias" ]]; then((match_count++))matching_servers+=("$server")breakfidonedone# 检查是否有多个匹配或者没有匹配的情况if [[ $match_count -gt ${#target_aliases[@]} ]]; then    # 控制台输出console_message="错误:有多个服务器匹配给定的别名列表 $target_all"echo "$console_message"log_entry="$LOG_MSG_PRE $console_message"echo "$log_entry" >> "$LOG_FILE"exit 1elif [[ $match_count -eq 0 ]]; thenconsole_message="错误:没有找到匹配给定的别名列表 $target_all"echo "$console_message"log_entry="$LOG_MSG_PRE $console_message"echo "$log_entry" >> "$LOG_FILE"exit 1else# 如果找到了匹配则执行命令for server in "${matching_servers[@]}"; doexecute_command "$server"donefi
fi

脚本记录的日志在 /var/log/fastsh.log 中,包含执行命令的时间、会话用户IP地址及执行的命令。

[root@test opt]# tail -f /var/log/fastsh.log 
2024-12-15 11:02:49 10.7.0.2 错误:没有找到匹配给定的别名列表 23
2024-12-15 11:25:34 10.7.0.2 使用方法: ./fastsh {all|别名[,别名,...]} "要执行的命令"
2024-12-15 11:25:46 10.7.0.2 正在执行命令于: 10 (192.168.1.10) 使用账户: root, 命令: ls

(END)

http://www.yayakq.cn/news/943597/

相关文章:

  • 衡阳百度网站建设wordpress分类标签
  • 苏州吴中区做网站wordpress密码加密方式
  • 深圳免费网站优化网络推广淘宝网网页版登录电脑版官网
  • 给境外网站网站做代理免费好用的网页制作软件
  • 广东顺德网站建设wordpress如何支持ps4
  • 做网站建设的销售薪水哈工大 网站开发
  • 个人如何建立网站软件开发软件开发网站
  • 学生作业 制作一个网站利用海康威视做直播网站
  • 做文件的网站手机网站建设制作教程
  • 一个虚拟主机能安装2个网站吗设计工作室网站推荐
  • 中国化工建设协会网站东莞有哪些做推广的网站
  • 网站建设的脑图规划互动交流平台
  • 网站制作实例教程做外贸做几个网站合适
  • 男女做那事视频免费网站主机做网站服务器
  • 怎么查看一个网站是不是伪静态网站域名购买com
  • 秦皇岛网络编辑网站免费app开发平台
  • 建设卒中中心几个网站网上申请平台怎么申请
  • 国内wordpress著名网站手机中国第一专业门户
  • 南京博物馆网站哪家做的荥阳网站制作
  • 网站首页布局设计模板分类网站模板
  • 市面上做网站多少钱重庆建设科技培训中心官方网站
  • 北京建站管理系统开发网站开发使用天气api
  • 响应式设计网站案例熊岳网站怎么做
  • 网站制作的基本流程是什么高端企业网站建设好的公司
  • 建个私人网站怎么做学习软件
  • php 网站建设微信网页版二维码
  • 怎样才能建设一歌网站谷歌seo服务公司
  • 杭州免费网站制作it美工做网站
  • 中江县建设局网站校园网站建设初探论文
  • 大庆免费网站建设公司公司网站可以自己做吗