您的位置:首页 > 编程语言 > Python开发

使用python脚本备份crontab定时任务

2016-06-14 18:08 771 查看
近期打算备份下服务器crontab任务,以防个人失误,清空定时任务,其实我觉得shell脚本更简单,但是想练习下python,决定使用python脚本进行,前提执行主机做好对其他节点服务器ssh免秘钥登录

vi crontab_backup.py

#!/usr/bin/env python
# -*- coding : UTF-8 -*-
# Author : CuiLei
# Date: 2016-06-14
# Filename: crontab_backup.py
# Description: backup crontab , host /root/crontab_backup/

import datetime
import re
import sys
import time
import os

#备份目标
source='/var/spool/cron'
print 'backup files:',source

#备份到的位置
target_dir='/root/crontab_backup/'

dt=datetime.datetime.now()

#打开iplist文件
f = open('iplist')
for line in f.readlines():
#查询IP
ip = re.findall(r'((?:\d{1,3}\.){3}\d{1,3})',line)[0]
print 'backup host: ',ip
#主机名称
host = line[14:].replace(" ","").strip('\n')
#目录名称
target=target_dir + host + dt.strftime('%Y%m%d%H%M%S')
print 'backup target: ',target
#首次执行需要创建目录
mk= "mkdir %s" % target_dir
print 'backup dir: ',mk
#cp的命令
cmd="cp -rf %s %s" % (source,target)
#调用命令ssh服务器执行命令
process1 = os.popen("/usr/bin/ssh %s %s" % (ip,mk)).read()
#睡眠1秒
time.sleep(1)
#执行备份
process2 = os.popen("/usr/bin/ssh %s %s" % (ip,cmd)).read()

if os.system(process2)==0 :
print 'successfull backup'
else:
print 'failed backup'

#iplist文件格式
vi iplist
192.168.1.154 test01
192.168.1.155 test02



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: