需求:
1、复制 /data/web/s1 并把s1改成对应的开服的区服
2、将s1目录里面的a.py文件里面的s1字符 全部替换成对应的开服的区服id,并给a.py写权限
3、将对应sn目录里面的insert.log do.txt 清空
4、把定时任务中的/5 * python /data/web/s1/a.py >> /data/web/s1/insert.log 复制成对应 的区服 并且追加写入crond

#!/usr/bin/env python#coding:utf-8import osimport reimport shutil as copycopy_web_service = '/data/web/s1'dest_web_service = '/data/web/s'all_web_service = '/data/web/'crontab_file = '/data/update/crontab.txt'openservice_num = '/data/update/open_num.txt'#获取开服数字并拷贝一个新目录出来def copy_newservice(): global open_num all_service = set() alredy_open_service = set() if not os.path.exists(openservice_num): print('%s开服数文件不存在,请检查' % openservice_num) exit(1) with open('/data/update/open_num.txt','r') as f: for file in f.readlines(): num = file.strip() for nums in range(1,int(num)+1): all_service.add(nums) for service in os.listdir(all_web_service): if re.match('s\d+',service): alredy_open_service.add(int(service[1:])) cha_num = alredy_open_service^all_service open_num = list(cha_num) if not os.path.exists(copy_web_service): print('%s目录不存在,脚本退出' % copy_web_service) exit(1) else: for nums in open_num: dest_dir = dest_web_service + str(nums) if not os.path.exists(dest_dir): copy.copytree(copy_web_service,dest_dir)#修改a.py脚本区服名字三处def modify_script(): script = '' for nums in open_num: new = 's' + str(nums) + '/' dest_dir = dest_web_service + str(nums) if not os.path.exists(dest_dir+'/a.py'): print('%s脚本不存在,脚本退出' % (dest_dir+'/a.py')) exit(1) with open(dest_dir+'/a.py') as f: for line in f.readlines(): if line.find(str('s1/')): line = re.sub('s1/',new,line) script += line else: script += line with open(dest_dir+'/a.py','w') as f: f.write(script) script = ''#清空do.txt和insert.log文件def clear_file(): kong = '' file_list = ['/insert.log','/do.txt'] for nums in open_num: for files in file_list: dest_dir = dest_web_service + str(nums) if not os.path.exists(dest_dir+files): print('%s文件不存在,脚本退出' % (dest_dir+files)) else: with open(dest_dir+files,'w') as f: f.write(kong)#创建定时任务def crontab(): if not os.path.exists(crontab_file): print('%s文件不存在,请检查' % crontab_file) for nums in open_num: task = '*/5 * * * * python /data/web/s' + str(nums) + '/a.py >> /data/web/s' + str(nums) + '/insert.log\n' with open(crontab_file,'a') as f: f.write(task) print('s\033[31m%s\033[0m服已完成操作...' % nums) os.system('crontab %s' % crontab_file)if __name__ == '__main__': copy_newservice() modify_script() clear_file() crontab()