#!/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)
import os, sys, datetime,re
# nginx日志存放的路径
nginxLogPath="/opt/nginx-1.9.5/logs/"
# 获取昨天的日期
yesterday = (datetime.date.today() + datetime.timedelta(days = -1)).strftime("%Y-%m-%d")
# nginx启动的pid文件
PID = "/var/run/nginx.pid"
def cutNginxLog(path):
"""
切割nginx日志函数
:param path: 日志文件的第一级目录
:return:
"""
logList = os.listdir(path) # 判断传入的path是否是目录
for logName in logList: # 循环处理目录里面的文件
logAbsPath = os.path.join(path, logName)
if os.path.isdir(logAbsPath): # 如果是目录,递归调用自己,继续处理
cutNginxLog(logAbsPath)
else: # 如果是日志文件,就进行处理
# 分割日志
re_Num = re.compile(r‘^[a-zA-Z]‘)
# 判断日志文件是否是字母开头,如果是日期开头就不切割
if re_Num.search(logName):
logNewName = yesterday + "_" + logName # 新日志文件名称列如:2018-11-8_access.log
oldLogPath = os.path.join(path, logName) # 旧日志文件绝对路径
newLogPath = os.path.join(path, logNewName) # 新日志文件绝对路径
os.rename(oldLogPath, newLogPath)
cmd = " kill -USR1 `cat %s` "% PID
res = os.system(cmd)
if res != 0:
return "重新加载nginx失败"
cutNginxLog(nginxLogPath)
#验证端口是否正常<br>import socket
def get_ports(port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((‘127.0.0.1‘,port))
print(result) #输出返回码
if result != 0:
send_data = "服务器的%d",port,‘端口挂了,快去修复哈‘
print (send_data)
else:
print("端口:",port,"正常")
原文:https://www.cnblogs.com/wuchangblog/p/12844848.html