案例分析
概述
Python是一种跨平台编程语言,在多种平台都能得到很好的支持,在各种平台环境的运维过程中,有些工作是很繁琐重复的工作,可以编写脚本作为工具辅助运维工作,比如linux中使用shell脚本,但是shell脚本编写、调试比较困难,支持的辅助库少,编写稍微复杂些的功能就比较耗时、容易出错了。本文通过Python实现代码,作为学习和技术交流。
Python基础环境准备
案例实现
文件目录按关键词备份迁移
说明:工程目录中的附件有很多文件,积累了多年,导致整个应用目录非常庞大,历年记录基本上是不会读取的,只保留当年或当月的记录,这样太大不方便应用迁移,本例实现将附件文件的历史目录迁移备份到目标备份目录。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import shutil
#
# 处理文件及目录
# @a_srcPath 目录路径
# # copyOrMove 复制操作还是移动操作 False为复制操作,True为移动操作
allfile = []
def handle_dir(a_srcPath, a_findKey, a_copyOrMove=False):
srcPathList = os.listdir(a_srcPath)
#print(str(srcPathList))
for sPath in srcPathList:
filepath = os.path.join(a_srcPath, sPath)
# print("filepath="+filepath)
# 判断是目录
if os.path.isdir(filepath):
handle_dir(filepath, a_findKey, a_copyOrMove)
if filepath.find(a_findKey)>=0:
len_asrcPath = len(srcPath_root)
destPath= destPath_root+filepath[len_asrcPath:]
# destPath = filepath
#print("destPath="+destPath)
#print("filepath=" + filepath)
allfile.append(destPath)
if a_copyOrMove:
shutil.move(filepath, destPath) #移动目录
else:
shutil.copytree(filepath, destPath) #复制目录
return allfile
findKey='2018-'
srcPath_root='/home/mysoft/attachments'
destPath_root='/home/mysoft/bk/attachments_history/'+findKey
allfiles=handle_dir(srcPath_root,findKey,False)
for item in allfiles:
print(item)
这样,就实现了复制、或者移动目录来迁移备份历史文件夹,而且按照指定关键词来建立文件夹,目录能得到比较完整的备份迁移,非常安全、方便。
持续完善,待续...