小型自动化运维--expect脚本之指定ip,指定文件进行同步操作(一)

简介:

小型自动化运维--expect脚本之指定ip,指定文件进行同步操作


# vim 5.expect


#!/usr/bin/expect

set passwd "wtf"

set host [lindex $argv 0]

set file [lindex $argv 1]

spawn rsync -av $file root@$host:$file

expect {

"yes/no" { send "yes\r"}

"password:" { send "$passwd\r" }

}

expect eof


对5.expect授予执行权限:

# chmod a+x 5.expect


执行命令:

#./5.expect 192.168.8.115 /tmp/

截图如下:

wKioL1j-tNqDRF8qAAA30otvPy8320.png

查看远程主机/tmp/路径下文件,截图如下:

wKiom1j-tpLSG7wDAAAK5LVCpl0626.png

注:

(1)192.168.8.115是远程主机ip;

(2)#./5.expect 192.168.8.115 /tmp/这条命令表示:把本地主机/tmp/路径下的文件,远程同步到ip为192.168.8.115主机/tmp/路径下。

(3)spawn rsync -av $file root@$host:$file 这里的文件路径要完全一致,本地的 file 路径和远程的 file 路径要完全一致,做到标准化。

(4)那么在实际环境中,应用程序的位置,配置文件的位置,不同的机器,存放的路径应该一致,root密码也应该一致,否则 expect 自动化运维便不那么方便。


  • 扩展一:传输到多个机器

# vim /tmp/ip.txt 【创建 ip 列表】

192.168.8.115

192.168.8.116

192.168.8.117

方法一:# for ip in `cat /tmp/ip.txt`; do ./5.expect $ip /tmp/;done

或者:写个for循环脚本,脚本如下:

方法二:

#!/bin/bash

d=`date`

for ip in `cat /tmp/ip.txt`

    do ./5.expect $ip /tmp/

done

上面两种方式的区别:

方法一可以直接以命令形式执行,注意命令之间的分号;方法二使用sh for.sh执行!

截图如下:

wKioL1j-uHfTPWOpAAA6WyFlUnE026.png

注:我这里只是用了一台192.168.8.115的虚拟主机。


  • 扩展二:多个文件传输到一台主机上

本地主机多个文件同步传输到远程主机上


# vim /tmp/filelist 【创建一个文件列表文件,里面是需要传输的各个文件的路径, 绝对路径 】

/tmp/33.txt

/usr/test


# vim 6.expect

#! /usr/bin/expect

set passwd "wtf"

set host [lindex $argv 0]

set file [lindex $argv 1]

spawn rsync -av --files-from=/tmp/filelist / root@$host:$file

expect {

"yes/no" { send "yes\r"}

"password:" { send "$passwd\r" }

}

expect eof


授权:chmod +x 6.expect

执行:./6.expect 192.168.8.115 /

或者:

# /usr/bin/expect 6.expect 192.168.8.115 /


注:最后的 / 表示远程的根目录 /。


截图如下:

wKioL1j-wUriRNeqAAA2bY3DN1A244.png

远程主机上查看:

wKioL1j-wbqDLZ3QAAAemdxjrbI859.png




     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1919148,如需转载请自行联系原作者


相关文章
|
6月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1026 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
6月前
|
人工智能 运维 监控
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
233 17
|
11月前
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
1165 0
|
7月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
219 4
|
7月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
246 4
|
6月前
|
人工智能 监控 Kubernetes
77_自动化脚本:Makefile与Airflow
在当今AI大模型时代,高效的工作流管理对于模型训练、推理和部署至关重要。随着大模型规模的不断增长和复杂度的提升,传统的手动脚本管理方式已无法满足需求。自动化脚本和工作流调度系统成为构建健壮、可重复、可扩展的LLM Pipeline的关键工具。其中,Makefile作为经典的自动化构建工具,与Airflow作为现代工作流调度平台的结合,为LLM开发团队提供了强大的工作流管理能力。
185 0
|
8月前
|
人工智能 运维 安全
运维老哥的救星?AI 驱动的自动化配置管理新趋势
运维老哥的救星?AI 驱动的自动化配置管理新趋势
391 11
|
10月前
|
机器学习/深度学习 人工智能 运维
运维不背锅,从“自动修锅”开始:AI自动化运维是怎么回事?
运维不背锅,从“自动修锅”开始:AI自动化运维是怎么回事?
559 49