centos 7 expect + shell实现批量创建文件

这个问题好久了,一直没整理出来。记得还是上次面试的时候问到如何批量修改1000台机器的主机名。这里给出批量创建内容为Hello,名为1.txt的文件。

一、首先安装expect

yum install -y expect

二、准备工作:(1)准备IP地址的列表。vim ip.txt

192.168.1.88

192.168.1.89

192.168.1.90

(2)准备要执行的命令。vim cmd.txt

mkdir /tmp/test

三、脚本部分

#!/bin/bash

passwd="123456"
sc=$(cat /tmp/cmd.txt)

echo $sc
cat ip.txt |while read line
do 
/usr/bin/expect <<EOF
set timeout  10
spawn ssh [email protected]$line
expect {
"yes/no" { send "yes\r";exp_continue }
"password:" {send "$passwd\r"}

}
expect "]#"

send "$sc\r"
send "exit\r"
expect eof
EOF
done 
exit 0

局限:假如密码不同,此方案需要另行考虑。可能会加上一个passwd的文件。

时间: 2024-10-08 19:35:09

centos 7 expect + shell实现批量创建文件的相关文章

Shell脚本批量创建用户并随机生成密码

要求:批量创建10个系统账号oldboy01-oldboy10,并设置生成密码(密码不同). 实现脚本: #!/bin/bash #Question3 for i in $(seq -w 10) do         useradd -s /bin/bash oldboy$i         echo "password$i" | md5sum | tee -a passwd.txt | passwd --stdin  oldboy$i done 脚本执行效果: [[email pro

使用for循环创建在指定目录下批量创建文件并重命名所有文件

要求1: 使用for循环在/root/scripts/practice/q1/oldboy 目录下创建十个文件.名称依次为: oldboy-1, oldboy-2, ..... oldboy-10. 脚本实现: #!/bin/bash #Question1 shopt -s expand_aliases alias ll="ls -l" cd /root/scripts/practice/q1 #首先判断目录是否存在,不存在则创建目录 if [ ! -e oldboy ] then  

使用Java中File类批量创建文件和批量修改文件名

批量创建文件 1 int cont = 1; 2 String s = "E:\\学习资料\\Java笔记-"; 3 while(cont<100){ 4 File f = new File(s+cont+".txt"); 5 if(!f.exists()){ 6 f.createNewFile(); 7 } 8 cont++; 9 } 批量修改文件名 1 File file = new File("E:\\学习资料"); 2 String

Python3 批量创建文件夹

# -*- coding: utf-8 -*- # @Time : 2018/12/23 8:09 # @Author : Philly # @File : make_directories.py # @Description: 批量创建文件夹 import os path = r'C:\Users\hasee\Desktop\resources\学习\LearningNotes\MySQL\books\mysql_scripts\\' for i in range(2, 31): file_n

批量创建文件,批量改名,批量删除

#使用for循环批量创建10个文件 #!/bin/sh if [ ! -d $PWD/file ] && mkdir -p $PWD/file then path=$PWD/file for count in `seq 10` do cd $path && touch linux-$count.jpg done else exit 1 fi #使用for循环批量改名 #!/bin/sh if [ -d $PWD/file ] && cd $PWD/file

Linux系统编写shell脚本批量创建和删除用户

一.编写shell脚本批量添加用户 实现方法:判断用户是否存在,存在则返回错误提示,同时判断用户文件是否存在,不存在则退出 1.创建添加用户脚本 [[email protected] ~]# vim useradd.sh #!/bin/bashif [ $# -eq 0 ];then        echo "你没有输入任何文件!"        exit 1fi if [ ! -f $1 ];then        echo "输入有误!"        exit

linux_红帽_批量创建文件

如在/test文件夹下创建A1.A2.A3.A4.A5这个几个文件 touch A{1..5} 1,命令方法 touch 456{1,2,3,4,5} 会在目录中生成(4561,4562,4563,4564,4565)五个目录文件 mkdir 456{1,2,3,4,5} 会在目录中生成(4561,4562,4563,4564,4565)五个文件夹 2,shell脚本 例如: mycomm.sh #!/bin/bash var1=1 while test $var1 -1e $2 do mkdi

SHELL之批量创建账号

批量创建账号:提示用户输入第一个用户名(如people1)和最后一个用户名(如people10) [[email protected] ~]# vim useradd2.sh #!/bin/bashread -p "please input first user: " FIRSTUSERread -p "please input last user: " LASTUSERFIRSTNUM=${FIRSTUSER##*[[:alpha:]]} #截取数字LASTNUM

4 批量创建文件操作

1 import os 2 import datetime 3 import time 4 5 while True: 6 path = input('请输入文件保存地址:') 7 num = int(input('请输入创建文件的数量:')) 8 for i in range(num): 9 t = datetime.datetime.now() 10 file = os.path.join(path,t.strftime('%Y%m%d%H%M%S') + '.txt') 11 open(f