时间:2017-05-26 10:51:17
定期备份
01 01 * * * /home/rsync/backup.sh
#!/bin/bash
$HOME/.bash_profileDIR2=/usr/backup
MYSQL_DUMP=/usr/local/mysql/mysql5.5/bin/mysqldump
USER_NAME=backup
PASSWORD=bjFw~quqxx_lym_rT4L@Hf5
HOST=192.168.0.71
# mysql
file_name="faq_`date -I`"
file_name2="emall_`date -I`"
file_name3="share_`date -I`"
file_name4="discuz_`date -I`"
$MYSQL_DUMP -u$USER_NAME -p$PASSWORD -h $HOST --quick faq > $DIR2/$file_name
#/bin/gzip $DIR2/$file_name
$MYSQL_DUMP -u$USER_NAME -p$PASSWORD -h $HOST --quick emall --ignore-table=emall.t_hash > $DIR2/$file_name2
#/bin/gzip $DIR2/$file_name2
$MYSQL_DUMP -u$USER_NAME -p$PASSWORD -h $HOST --quick share > $DIR2/$file_name3
#/bin/gzip $DIR2/$file_name3
$MYSQL_DUMP -u$USER_NAME -p$PASSWORD -h $HOST --quick discuz > $DIR2/$file_name4
#/bin/gzip $DIR2/$file_name4
/bin/gzip -f $DIR2/*"_`date -I`"
定期删除
01 04 * * * /home/rsync/rm_backup.sh
#!/bin/bash
$HOME/.bash_profile
DIR2=/usr/backup
python /home/rsync/rmfile.py $DIR2 discuz
python /home/rsync/rmfile.py $DIR2 emall
python /home/rsync/rmfile.py $DIR2 faq
python /home/rsync/rmfile.py $DIR2 share
//PYTHON 文件代码
import os,datetime,sys
class myFile:
fileName = ''
fileDate = 0
def __init__(self,n,d):
self.fileName = n
self.fileDate = d
def getSpareFlis(fileList):
litte = 0;
i = 0;
for f in fileList:
if(f.fileDate < fileList[litte].fileDate):
litte = i
i+=1
del fileList[litte]
return fileList
class weekFile:
week = ""
fileList = []
def __getWeek__(self, file):
s = datetime.datetime.fromtimestamp(file.fileDate).isocalendar()
return str(s[0])+"_"+str(s[1])
def __init__(self, file):
self.week = self.__getWeek__(file)
self.fileList = []
self.fileList.append(file)
def addFile(self , file):
if(self.week == self.__getWeek__(file)):
self.fileList.append(file)
return True
else:
return False
class monthFile:
month = ""
fileList = []
def __getMonth__(self, file):
d = datetime.datetime.fromtimestamp(file.fileDate)
return str(d.year)+"_"+str(d.month)
def __init__(self, file):
self.month = self.__getMonth__(file)
self.fileList = []
self.fileList.append(file)
def addFile(self , file):
if(self.month == self.__getMonth__(file)):
self.fileList.append(file)
return True
else:
return False
def getNeedDeleteFiles(files):
monthList = []
weekList = []
today = datetime.datetime.now()
for f in files:
if((today - datetime.datetime.fromtimestamp(f.fileDate)).days > 90):
isadd = False
for m in monthList:
if(m.addFile(f)):
isadd = True
break
if(not isadd):
monthList.append(monthFile(f))
elif((today-datetime.datetime.fromtimestamp(f.fileDate)).days > 20):
isadd = False
for w in weekList:
if(w.addFile(f)):
isadd = True
break
if(not isadd):
weekList.append(weekFile(f))
needDeleteFiles = []
for m in monthList:
needDeleteFiles.extend(getSpareFlis(m.fileList))
for w in weekList:
needDeleteFiles.extend(getSpareFlis(w.fileList))
return needDeleteFiles
def getPathFiles(path, namePart):
fileList = []
files = os.listdir(path)
for f in files:
fullPath = os.path.join(path, f)
if(os.path.isfile(fullPath)):
if(None == namePart or namePart == '' or f.find(namePart) >= 0):
fileList.append(myFile(fullPath, os.path.getmtime(fullPath)))
return fileList
if(len(sys.argv) < 2):
print("please input path")
exit(1)
path = sys.argv[1]
if(len(sys.argv) < 3):
print("please input file name like")
exit(1)
fileStr = sys.argv[2]
if(not os.path.isdir(path)):
print(path+ " is not dir")
exit(1)
print("path="+path+" findName="+fileStr)
filelist = getPathFiles(path, fileStr)
filelist = getNeedDeleteFiles(filelist)
for f in filelist:
print("delete file " + f.fileName)
os.remove(f.fileName)
print("ok")
exit(0)