如何利用shell在多台机器批量做 *** 作

如何利用shell在多台机器批量做 *** 作,第1张

按照我的理解单单shell是不够的,可以用ssh连接远程机器,但是远程机器上也需要存放shell文件

bash-32# ssh 19216850210

root@19216850210's password:

Last login: Thu Apr 20 08:34:26 2017 from 17228160164

[root@vm03 ~]#

推荐你了解一下ansible,可以解决你的问题。

之前在Linux吧就发过,基本就是完成了Kali所有需要配置的东西了(具体请看注释和README)。使用方法就是执行普通脚本那样(前提是已经联网),然后开着终端就可以去干别的了,基本半小时后(根据网速而定)就完成了。十分简单方便~有什么问题或是bug请写在这里或是给我写封邮件,感谢大家~(正在开发ArchLinux一键配置Shell中

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。

注:这里的iptxt文件存储服务器ip

注:执行方式:sh command

3此脚本目的是实现将目标服务器切换为root用户并启动程序自身启动脚本

4将上一个脚本发送到指定服务器并执行

以下是一个简单的shell脚本,可以批量查看主机用户密码是否过期:

```shell

#!/bin/bash

#定义主机列表

servers=("server1" "server2" "server3")

#循环遍历主机列表

for server in ${servers[@]}

do

#查看主机用户密码是否过期

ssh $server "echo -e \"\n$(hostname):\"

while read user; do

echo -e \"$user:\t$(chage -l $user | grep \"Password expires\" | awk '{print $NF}')\";

done < <(cut -d: -f1 /etc/passwd)"

done

```

这个脚本会连接每个主机,并查找每个用户的密码是否过期。如果密码已经过期,则会在输出中显示过期的日期。

将当前目录下面包括子目录中的png文件移动至指定的target目录

对一个的shell脚本

通常我们使用如下的方式去批量删除文件:

那是否可以采用类似方式通过find命令来批量移动文件呢?

很遗憾,不能采用这种方式来实现

理由: 像cd和ls命令只需要一个input,而像mv和cp等命令都需要两个input,需要source和target。通过管道只能获得一个input。

工作学习中时常会用到批处理功能,Photoshop、Illustrator、Office等软件都提供了强大的批处理功能。当我们需要替换文件的时候,就需要提供文件的绝对路径,文件数量少的时候还可以手动逐个输入,文件数量很大的时候,手动逐个输入的方式就不合适了。

本文介绍一种简单的方法,利用 Windows10 系统里的 Power shell 批量提取文件名。

将要提取路径的文件放到一个文件夹下,进入该文件夹,在地址栏输入powershell,回车

或者直接打开 Power Shell ,命令:

例如

别名:gci、ls、dir

习惯 Linux 的可以选择用 man ls 命令来查看用法

输入 ls 回车,我们得到了工作路径下所有文件信息

输入 ls -n 回车,就可以得到所有文件名

输出重定向符号: >

输入 ls -n > anynametxt 回车,就可以得到一个包含所有文件名的文本文件。

打开该文本文件,复制所有内容粘贴到 Excel 中,可得到排列整齐的信息。

利用其他方法,将文件夹路径加到文件名前面就可以得到绝对路径。

1、通过sed替换

[root@node01 wolf]# find / -type f -name wolflog

/wolflog

/tmp/wolflog

/root/wolf/wolflog

[root@node01 wolf]# sed -i 's#wolf#yujing#g' find / -type f -name wolflog

[root@node01 wolf]# find / -type f -name "wolflog" | xargs cat

yujing

yujing

yujing

[root@node01 wolf]#

2、通过变量子串替换

vi laolanglog

wolf_20170806_1_wolfjpg

wolf_20170806_2_wolfjpg

wolf_20170806_3_wolfjpg

wolf_20170806_4_wolfjpg

wolf_20170806_5_wolfjpg

wolf_20170806_6_wolfjpg

wolf_20170806_7_wolfjpg

wolf_20170806_8_wolfjpg

wolf_20170806_9_wolfjpg

wolf_20170806_10_wolfjpg

[root@node01 data]# touch cat laolanglog |tr "\n" " "

[root@node01 data]# ll

total 8316

drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-339

-rw-r--r-- 1 root root 8491533 Jul 8 07:23 apache-maven-339-bintargz

-rw-r--r-- 1 root root 0 Jul 29 14:16 cat

drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1

drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2

drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3

-rw-r--r-- 1 root root 251 Jul 29 14:16 laolanglog

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_10_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_1_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_2_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_3_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_4_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_5_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_6_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_7_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_8_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_9_wolfjpg

[root@node01 data]# f=wolf_20170806_10_wolfjpg

[root@node01 data]# echo $f

wolf_20170806_10_wolfjpg

[root@node01 data]# echo ${f%wolfjpg}

wolf_20170806_10_

[root@node01 data]# mv $f echo ${f%wolfjpg}jpg

[root@node01 data]# ll

total 8316

drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-339

-rw-r--r-- 1 root root 8491533 Jul 8 07:23 apache-maven-339-bintargz

-rw-r--r-- 1 root root 0 Jul 29 14:16 cat

drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1

drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2

drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3

-rw-r--r-- 1 root root 251 Jul 29 14:16 laolanglog

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_10_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_1_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_2_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_3_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_4_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_5_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_6_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_7_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_8_wolfjpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_9_wolfjpg

[root@node01 data]# for f in ls wolfjpg ;do mv $f echo ${f%wolfjpg}jpg;done

[root@node01 data]# ll

total 8316

drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-339

-rw-r--r-- 1 root root 8491533 Jul 8 07:23 apache-maven-339-bintargz

-rw-r--r-- 1 root root 0 Jul 29 14:16 cat

drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1

drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2

drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3

-rw-r--r-- 1 root root 251 Jul 29 14:16 laolanglog

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_10_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_1_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_2_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_3_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_4_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_5_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_6_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_7_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_8_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_9_jpg

3、修改扩展名

把上面的jpg更换为log

[root@node01 data]# f=wolf_20170806_10_jpg

[root@node01 data]# echo ${f/%jpg/log} 

wolf_20170806_10_log

[root@node01 data]# mv $f ${f/%jpg/log}

[root@node01 data]# ls

apache-maven-339 day1 laolanglog wolf_20170806_2_jpg wolf_20170806_5_jpg wolf_20170806_8_jpg

apache-maven-339-bintargz day2 wolf_20170806_10_log wolf_20170806_3_jpg wolf_20170806_6_jpg wolf_20170806_9_jpg

cat day3 wolf_20170806_1_jpg wolf_20170806_4_jpg wolf_20170806_7_jpg

[root@node01 data]# ll

total 8316

drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-339

-rw-r--r-- 1 root root 8491533 Jul 8 07:23 apache-maven-339-bintargz

-rw-r--r-- 1 root root 0 Jul 29 14:16 cat

drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1

drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2

drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3

-rw-r--r-- 1 root root 251 Jul 29 14:16 laolanglog

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_10_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_1_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_2_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_3_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_4_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_5_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_6_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_7_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_8_jpg

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_9_jpg

[root@node01 data]# for f in ls jpg ;do mv $f ${f/%jpg/log} ;done

[root@node01 data]# ll

total 8316

drwxr-xr-x 6 root root 4096 Jul 8 07:24 apache-maven-339

-rw-r--r-- 1 root root 8491533 Jul 8 07:23 apache-maven-339-bintargz

-rw-r--r-- 1 root root 0 Jul 29 14:16 cat

drwxr-xr-x 2 root root 4096 Jul 29 06:00 day1

drwxr-xr-x 2 root root 4096 Jul 29 11:50 day2

drwxr-xr-x 2 root root 4096 Jul 29 14:12 day3

-rw-r--r-- 1 root root 251 Jul 29 14:16 laolanglog

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_10_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_1_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_2_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_3_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_4_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_5_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_6_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_7_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_8_log

-rw-r--r-- 1 root root 0 Jul 29 14:16 wolf_20170806_9_log

以上就是本次分享的全部内容,现在想要学习的程序员欢迎关注六星社区,获取更多技能与教程。

以上就是关于如何利用shell在多台机器批量做 *** 作全部的内容,包括:如何利用shell在多台机器批量做 *** 作、kail linux怎么批量运行shell、shell实现交互式在多台服务器批量执行命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9312898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存