记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

ansible-playbook上传脚本执行并查找匹配文件下载


一,环境说明。

1,IP:192.168.1.20,Centos6,ansible主机。

2,IP:192.168.1.25-28,Centos6,保存sim相关信息,受控机。

3,目标:提取受控机中产生登陆信息的sim号码,并排序去重后打包。

数据样本: /home/TrackFile/138/5555/6666/20211201.txt ,号码分段,有登陆信息后,每日一个文档


二,脚本与YAML文件编写。

1,编写simcount.sh脚本,用来统计远程主机的sim号码,并排序去重后打包。

simpwd 是号码登陆信息的保存目录,simcount为上传的脚本保存目录。


#!/bin/bash
# 统计目录下产生信息的sim号码并去重排序,打包。
simpwd='/home/aaaa/TrackFile' #sim信息保存目录
simcount='/home/aaaa/simonline' #统计脚本保存目录
hostip=`/sbin/ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`

#找出轨迹目录下产生定位的sim号码
find $simpwd -name "202112*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202112.txt
find $simpwd -name "202111*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202111.txt
find $simpwd -name "202110*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202110.txt
find $simpwd -name "202109*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202109.txt
find $simpwd -name "202108*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202108.txt
find $simpwd -name "202107*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202107.txt
find $simpwd -name "202106*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202106.txt
find $simpwd -name "202105*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202105.txt
find $simpwd -name "202104*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202104.txt
find $simpwd -name "202103*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202103.txt
find $simpwd -name "202102*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202102.txt
find $simpwd -name "202101*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202101.txt

#对号码进行去重排序
/bin/sort $simcount/$hostip-202112.txt |/usr/bin/uniq > $simcount/$hostip-sim-202112.txt
/bin/sort $simcount/$hostip-202111.txt |/usr/bin/uniq > $simcount/$hostip-sim-202111.txt
/bin/sort $simcount/$hostip-202110.txt |/usr/bin/uniq > $simcount/$hostip-sim-202110.txt
/bin/sort $simcount/$hostip-202109.txt |/usr/bin/uniq > $simcount/$hostip-sim-202109.txt
/bin/sort $simcount/$hostip-202108.txt |/usr/bin/uniq > $simcount/$hostip-sim-202108.txt
/bin/sort $simcount/$hostip-202107.txt |/usr/bin/uniq > $simcount/$hostip-sim-202107.txt
/bin/sort $simcount/$hostip-202106.txt |/usr/bin/uniq > $simcount/$hostip-sim-202106.txt
/bin/sort $simcount/$hostip-202105.txt |/usr/bin/uniq > $simcount/$hostip-sim-202105.txt
/bin/sort $simcount/$hostip-202104.txt |/usr/bin/uniq > $simcount/$hostip-sim-202104.txt
/bin/sort $simcount/$hostip-202103.txt |/usr/bin/uniq > $simcount/$hostip-sim-202103.txt
/bin/sort $simcount/$hostip-202102.txt |/usr/bin/uniq > $simcount/$hostip-sim-202102.txt
/bin/sort $simcount/$hostip-202101.txt |/usr/bin/uniq > $simcount/$hostip-sim-202101.txt

#对目录进行打包压缩
/bin/tar -cvf $HOME/$hostip-sim.tar $simcount/*.txt #最后打包相关文件



2,编写sim-fetch.yaml,剧本文件,

- name: 统计每月生成信息的号码。
  hosts: all
  vars:
    simtar: "{{ansible_default_ipv4['address']}}" #提取远程主机IP
    simdir: "/home/aaaa/simonline/" #脚本所在目录
  tasks:
    - name: "上传脚本程序"
      copy:
        dest: "{{simdir}}"
        src: /home/ttt/playbook/simcount.sh #ansible主机脚本路径
        mode: u+x #上传脚本后,给个执行权限
        owner: "aaaa" #脚本所属用户

    - name: 执行脚本收集数据。
      shell: sh {{simdir}}/simcount.sh #执行脚本

    - name: 搜索打包文件
      find:
        paths: /home/aaaa/ #打包文件保存目录
        patterns: "*.tar"
        recurse: no
      register: sim_fetch #标记打包tar文件路径的变量

    - name: 开始批量下载
      fetch:
        src: "{{ item.path }}"
        dest: /home/ttt/playbook/ #tar打包文件下载目录
        flat: yes
      with_items: "{{ sim_fetch.files }}"



三,执行命令并查看效果。

1,使用下面命令测试,并不是实现执行。

ansible-playbook /home/ttt/playbook/sim-fetch.yaml -C


2,测试命令没问题后,再正式搞起,并查看效果。
ansible-playbook /home/ttt/playbook/sim-fetch.yaml 




转载请标明出处【ansible-playbook上传脚本执行并查找匹配文件下载】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论