bash经典收集

经典收集1

for f in `(cd .; find suite -type f | grep -v SCCS)`; \

do \

d=/usr/local/mysql/mysql-test/`dirname $f`; \

mkdir -p $d ; \

/usr/bin/install -c -m 644 ./$f $d ; \

done

test -z "/usr/local/mysql/mysql-test" || mkdir -p -- "/usr/local/mysql/mysql-test"

expect

自动登录expect脚本

[root@nginx sbin]# cat 1.expect

#!/usr/bin/expect

set host "192.168.211.135"

set passwd "root123"

spawn ssh root@$host

expect {

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

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

}

interact

[root@nginx sbin]#

自动登录后执行命令

[root@nginx sbin]# cat 2.expect

#!/usr/bin/expect

set user "root"

set host "192.168.211.135"

set passwd "root123"

spawn ssh $user@$host

expect {

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

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

}

expect "]*"

send "touch /tmp/12.ext\r"

expect "]*"

send "echo 1212 >/tmp/12.txt\r"

expect "]*"

send "exit\r"

#interact

[root@nginx sbin]#

expect脚本传递参数

[root@nginx sbin]# cat 3.expect

#!/usr/bin/expect

set user [lindex $argv 0]

set host [lindex $argv 1]

set passwd "root123"

set cm [lindex $argv 2]

spawn ssh $user@$host

expect {

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

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

}

expect "]*"

send "$cm\r"

expect "]*"

send "exit\r"

[root@nginx sbin]#

[root@nginx sbin]# ./3.expect root 192.168.211.135 "ls /root/"

自动同步文件脚本

[root@nginx sbin]# cat 4.expect

#!/usr/bin/expect

set passwd "root123"

spawn rsync -av root@192.168.211.135:/tmp/12.txt /tmp/

expect {

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

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

}

expect eof

[root@nginx sbin]#

构建简易文件分发系统

适用于有多台机器需要同时更新文件

[root@nginx sbin]# cat rsync.expect

#!/usr/bin/expect

set passwd "root123"

set host [lindex $argv 0]

set file [lindex $argv 1]

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

expect {

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

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

}

expect eof

[root@nginx sbin]#

[root@nginx sbin]# cat ip.list

192.168.211.135

192.168.211.137

[root@nginx sbin]#

[root@nginx sbin]# cat rsync.sh

#!/bin/bash

for ip in `cat ip.list`

do

echo $ip

[ -x rsync.expect ] || chmod a+x rsync.expect

./rsync.expect $ip ip.list

done

[root@nginx sbin]#

命令批量执行脚本

适用于有多台机器需要批量执行命令

[root@nginx sbin]# cat exe.expect

#!/usr/bin/expect

set host [lindex $argv 0]

set passwd "root123"

set cm [lindex $argv 1]

spawn ssh root@$host

expect {

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

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

}

expect "]*"

send "$cm\r"

expect "]*"

send "exit\r"

[root@nginx sbin]#

[root@nginx sbin]# cat ip.list

192.168.211.135

192.168.211.137

[root@nginx sbin]#

[root@nginx sbin]# cat exe.sh

#!/bin/bash

for ip in `cat ip.list`

do

echo $ip

[ -x exe.expect ] || chmod a+x exe.expect

./exe.expect $ip "w;free -m;ls /tmp"

done

[root@nginx sbin]#

CentOS下构建Shell简易分发系统的更多相关文章

  1. shell项目-分发系统-构建文件分发系统

    shell项目-分发系统-构建文件分发系统 需求背景对于大公司而言,肯定时不时会有网站或者配置文件更新,而且使用的机器肯定也是好多台,少则几台,多则几十甚至上百台.所以,自动同步文件是至关重要的. 实 ...

  2. Linux centosVMware运行告警系统、分发系统-expect讲解、自动远程登录后,执行命令并退出、expect脚本传递参数、expect脚本同步文件、指定host和要同步的文件、shell项目-分发系统-构建文件分发系统、分发系统-命令批量执行

    一运行告警系统 创建一个任务计划crontab -e 每一分钟都执行一次 调试时把主脚本里边log先注释掉 再次执行 没有发现502文件说明执行成功了,每日有错误,本机IP 负载不高 二.分发系统-e ...

  3. shell项目-分发系统-expect讲解

    shell项目-分发系统-expect讲解 yum install -y expect 1. 自动远程登录 #! /usr/bin/expect set host "192.168.133. ...

  4. CentOS下编写shell脚本来监控MySQL主从复制的教程

    这篇文章主要介绍了在CentOS系统下编写shell脚本来监控主从复制的教程,文中举了两个发现故障后再次执行复制命令的例子,需要的朋友可以参考下 目的:定时监控MySQL主从数据库是否同步,如果不同步 ...

  5. Windows下本机简易监控系统搭建(Telegraf+Influxdb+Grafana)

    一.文件准备 1.1 文件名称 telegraf-1.2.1_windows_amd64.zip influxdb-1.2.2_windows_amd64.zip grafana-4.2.0.wind ...

  6. Windows下本机简易监控系统搭建(Telegraf+Influxdb+Grafana)--转

    原文地址:http://www.cnblogs.com/liugh/p/6683488.html 一.文件准备 1.1 文件名称 telegraf-1.2.1_windows_amd64.zip in ...

  7. centos 下构建lamp环境

    构建准备: 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp - ...

  8. CentOS下如何用nmon收集系统实时运行状况

    #赋予执行权限 chmod +x nmon 执行./nmon可以查看实时的系统状态有提示的,d看磁盘,n看网络,c看cpu #如果不想看实时的,想收集系统长时间运行情况然后分析,可用这个 nohup ...

  9. CentOS 下如何查看并清理系统内存空间

    有时候在服务器上打开了很多会占用内存的程序但关闭这些程序后,发现内存空间还是和没有关闭应用程序时的占用一样,以致使其它应用程序打开时内存不够或很卡,那么此时就想清理掉以前的程序打开时所占用的内存.而大 ...

随机推荐

  1. Docker学习—DockerFile

    前言: 上一篇文章简单使用了docker 拉取镜像.启动容器.编译镜像:其中编译镜像时,使用到了Dockerfile,那么接下来我们就详细的来说说Dockerfile DockerFile是什么: D ...

  2. JMeter100个线程竟然只模拟出1个并发

    线程组,是说到 JMeter 会第一时间想到的东西,也是我认为 JMeter 最难理解的知识点.因为项目让你做个压测,首先就是要考虑并发,用 JMeter 就是用多线程 来模拟多并发.但在看到线程组编 ...

  3. Docker - 解决 gitlab 容器上的项目进行 clone 时,IP 地址显示一串数字而不是正常 IP 地址的问题

    问题背景 通过 gitlab 容器创建了一个项目,想 clone 到本地,结果发现项目的 IP 地址是一串数字 问题排查 明明创建项目的时候,IP 地址还是正常的鸭! 再看看项目的 settings ...

  4. Spring Boot 2.4 正式发布,重大调整!!!

    大家周末愉快啊,Spring Boot 2.3.5 没发布几天,你看,还是 1 周前发布的: 昨天又有粉丝留言说 Spring Boot 2.4.0 已经发布了: 我了个去,栈长赶紧跑到 Spring ...

  5. php 正则金额验证

    $money_reg = '/^[1-9]\d*|^[1-9]\d*.\d+[1-9]$/';if(!preg_match($money_reg, $money)){ $this->ajaxEr ...

  6. File 方法

    File类说明 存储在变量,数组和对象中的数据是暂时的,当程序终止时他们就会丢失.为了能够永 久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中.这些文件可以移动,传送,亦可以被其他程序使用 ...

  7. 【JVM第三篇--运行时数据区】程序计数器、虚拟机栈、本地方法栈

    写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记.其观看地址如下:尚硅谷2020最新版宋红康JVM教程 一.运行时数据区 我们在编写Java程序时,使用JVM的流程主要如下所示: 虚拟机在 ...

  8. JsonPath在接口自动化中的应用

    我理解jsonpath于json而言,就像是xpath在XML中的作用.用来确定json中某部分数据的语言.我更喜欢叫jsonpath表达式,因为这样好像是数学问题. 以前和小伙伴一起写接口自动化的时 ...

  9. Adaboost算法的一个简单实现——基于《统计学习方法(李航)》第八章

    最近阅读了李航的<统计学习方法(第二版)>,对AdaBoost算法进行了学习. 在第八章的8.1.3小节中,举了一个具体的算法计算实例.美中不足的是书上只给出了数值解,这里用代码将它实现一 ...

  10. 菜鸟试做GUI简单数据库查询界面 python+tkinter+mysql

    一.准备工作: 1.安装mysql3.7,创建一个test数据库,创建student表,创建列:(列名看代码),创建几条数据 (以上工作直接用navicat for mysql工具完成) 二.代码: ...