批量处理思路在工作中使用的频率比较高,比如批量清理进程、批量删除文件、批量机器执行脚本等。
一、批量清理带java字样的进程
方式1:使用shell while语法。
ps aux |grep java |awk '{print $2}' | while read line; do kill -9 ${line}; done
shell while 方式直观,可处理相对复杂的逻辑,通用性高。
方式2:使用 xargs 参数
ps aux |grep java |awk '{print $2}' | xargs kill -9
xargs 方式使用简洁,可进行简单逻辑的处理
二、批量删除文件
删除当前目录且不包括子目录下 '.txt' 文件格式的文件
find ./ -maxdepth 1 -name "*.txt" | while read line; do rm -rf ${line}; done
三、多台机器批量执行命令
查看多台机器的当前时间,机器时间不同步时可以采用这样方式查看。
方式1:shell for 语法
for host in 10.111.17.119 10.111.17.120; do ssh root@${host} 'date -R'; done
方式2:ansible 命令
ansible hadoop -m shell -a 'date -R' -k
ansible 命令的使用参考:https://www.cnblogs.com/walker-/p/10146660.html