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

举报
江晚正愁余 发表于 2024/04/03 10:53:48 2024/04/03
【摘要】 ansible-playbook上传脚本执行并查找匹配文件下载一,环境说明。 1,IP:192.168.1.20,Centos6,ansible主机。 2,IP:192.168.1.25-28,Centos6,保存sim相关信息,受控机。 3,目标:提取受控机中产生登陆信息的sim号码,并排序去重后打包。 数据样本: /home/aaa/TrackFile/138/5555/6666/202...

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


一,环境说明。

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

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

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

数据样本: /home/aaa/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 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。