以下是一个实现该功能的shell脚本示例:

#!/bin/bash

# 定义要连接的ip列表
ips=("ip1" "ip2" "ip3")

# 定义要连接的数据库ip
db_ip="db_ip"

# 定义数据库用户名和密码
db_user="db_user"
db_password="db_password"

# 定义日志文件名
log_file="slow.log.old"

# 遍历ip列表
for ip in "${ips[@]}"
do
  # 连接到远程主机,获取slow.log.old的最后一行
  last_line=$(ssh $ip "tail -n 1 $log_file")

  # 连接到数据库主机,执行sql语句
  start_time=$(date +%s%N)
  ssh $db_ip "mysql -u$db_user -p$db_password -e \"$last_line\""
  end_time=$(date +%s%N)

  # 计算执行时间
  execution_time=$((($end_time - $start_time) / 1000000))

  # 输出执行结果
  echo "IP: $ip"
  echo "Execution Time: $execution_time ms"
  echo "--------------------------"
done

你需要将其中的 ip1, ip2, ip3, db_ip, db_user, db_password 替换为实际的ip地址、数据库ip、用户名和密码。

注意:为了方便演示,脚本中使用了简单的时间戳来计算执行时间,实际情况下可能需要根据具体的需求进行调整。另外,脚本中的ssh命令需要保证能够免密登录到对应的远程主机。

帮我写一个shell脚本需要实现如下功能:ssh到多个ip下拿到每个ip下的slowlogold中的最后一条然后在另一个ip的数据库中执行并拿到执行的时间

原文地址: http://www.cveoy.top/t/topic/jdt6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录