按照我的理解单单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实现交互式在多台服务器批量执行命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)