需求:对比本地及远程主机上某文件夹下文件大小是否一致,可用作对比不同环境下的配置文件或程序包是否一致
实现:ssh远程执行命令,获取到远程主机上的文件信息到本地文件A,ls本地文件获取到文件信息到本地文件B;然后对比A和B
基础版:
#!/bin/bash
ssh baidu@test41 "ls -l --full-time /home/baidu/update/*.jar"|awk '{print $5" "$9}'|sed -r "s/\/home\/baidu\/update\///g">test41
ls -l --full-time /home/baidu/update/*.jar|awk '{print $5" "$9}'|sed -r "s/\/home\/baidu\/update\///g">dev31
diff dev31 test41 |grep \>|awk '{print $3}'
进阶版:
#!/bin/bash
ssh baidu@test41 "ls -l /home/baidu/update/*.jar"|awk '{print $5" "$6" "$7" "$8" "$9}'|sed -r "s/\/home\/baidu\/update\///g">test41time
ssh baidu@test41 "ls -l --full-time /home/baidu/update/*.jar"|awk '{print $5" "$9}'|sed -r "s/\/home\/baidu\/update\///g">test41
ls -l /home/baidu/update/*.jar|awk '{print $5" "$6" "$7" "$8" "$9}'|sed -r "s/\/home\/baidu\/update\///g">dev31time
ls -l --full-time /home/baidu/update/*.jar|awk '{print $5" "$9}'|sed -r "s/\/home\/baidu\/update\///g">dev31
diff dev31 test41 |grep \>|awk '{print $3}'>dif
cat dif|while read LINE
do
file=($LINE)
echo "-----------" >>diftime
grep -r ${file} ./*time >>diftime
done
cat dif
cat diftime
>diftime