开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ansible同步/etc/crontab里面的脚本

简介:
+关注继续查看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import ansible.runner
from ansible.color import stringc
import sys
import socket
import re
import subprocess
 
host_list = 'qa_servers.txt'
private_key_file = '/root/.ssh/id_rsa'
pattern = '*'
forks = 10
timeout = 30
module_name = 'script'
module_args = 'test.sh'
fp = open('/home/ip.txt'"w+")
# construct the ansible runner and execute on all hosts
results = ansible.runner.Runner(
    host_list=host_list,
    private_key_file=private_key_file,
    pattern=pattern,
    forks=forks,
    timeout=timeout,
    module_name=module_name,
    module_args=module_args
).run()
# print results
if results is None:
    print "No hosts found"
    sys.exit(1)
#print results
for (hostname, result) in results['contacted'].items():
    if not 'failed' in result:
        ip = result['stdout'].strip()
        if ip != "":
            output = open('/home/ip.txt''a')
            output.write(ip)
            output.write('\n')
fp.close()
1
2
3
4
5
6
7
cat test.sh
#!/bin/bash
#if [ `ps -ef|grep tomcat|grep /opt|wc -l` -gt 0 ];then
if [ `cat /etc/crontab|grep .sh|grep -v SHELL|awk '{print $8}'|uniq|wc -l` -gt 0 ];then
echo `ifconfig|grep 'inet '|grep -'127.0'|xargs|awk -'[ :]' '{print $3}'`
echo `cat /etc/crontab|grep .sh|grep -v SHELL|awk '{print $8}'|uniq`
fi
1
2
3
cat qa_servers.txt
ip1
ip2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# !/usr/bin/env python
# coding:utf-8
import os,sys,re
sfile="/home/ip.txt"
with open(sfile,'r') as f:
    rlist=f.readlines()
    # print rlist
    llen=len(rlist)
    for in range(llen - 1):
        if i%2==0:
            ip = rlist[i].strip()
            print "ansible -i /etc/ansible/hosts %s -m shell -a 'mkdir -p /home/run/%s'" %(ip,ip)
            command = rlist[i + 1].strip()
            comlist = command.split(' ')
            for in comlist:
                #print j
                print "ansible -i /etc/ansible/hosts %s -m synchronize -a 'mode=pull src=%s dest=/home/run/%s/'"\
                %(ip,j,ip)

自动生成

1
2
ansible -/etc/ansible/hosts ip1 -m shell -'mkdir -p /home/run/ip1'
ansible -/etc/ansible/hosts ip1 -m synchronize -'mode=pull src=/home/jenkins.sh dest=/home/run/ip1/'

需要两个python脚本,生成最后的脚本,执行就可以同步各个客户端中/etc/crontab的脚本。


一个简单而笨的思路。




本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1925140,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
6.2.1.1UE maximum output power - EIRP and TRP——翻译
6.2.1.1UE maximum output power - EIRP and TRP——翻译
57 0
【Linux】定时任务-crontab
【Linux】定时任务-crontab1.1 定时任务crond介绍Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,安装完centos 6/7等linux操作系统之后,默认便会启动crond任务调度服务,crond服务也会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于“闹钟”一样。
3155 0
使用linux下的crontab定时任务跑定时脚本
使用linux下的crontab定时任务跑定时脚本 tags:定时任务 定时脚本 crontab linux定时脚本 linux 引言:应该有许多人曾经很好奇一些定时脚本是怎么做出来的。我们这次就来说一下定时脚本的那些事,其实网上教程多得很,我就来蹭一下热度吧。
1878 0
UWP crop image control
原文:UWP crop image control 最近做项目,需求做一个剪切图片的东东。如下图  主要是在一个canvas上面。根据crop的大小画出半透明的效果 ...
1054 0
Ansible cron模块
ansible all -m cron -a 'name="custom job" minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.
684 0
android 设备唯一码的获取,Cpu号,Mac地址
转:http://blog.csdn.net/hpccn/article/details/7872141 开发Android应用中,我们常常需要设备的唯一码来确定客户端。 Android 中的几中方法,使用中常常不可靠 1. DEVICE_ID 假设我们确实需要用到真实设备的标识,可能就需要用到DEVICE_ID。
1113 0
艾伟:ORM With Versioning Control
  在一些场合,我们可能需要对业务实体进行版本控制。类似于源码管理工具一样,可以查看历史版本,可以回滚,可以Lock,一个业务实体对象,同一时刻只允许一个人进行更新操作。为了实现信息的可追溯性,这些功能应该是必不可少的。
728 0
13688
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载