用Python实现的日志压缩、异地备份脚本,把昨天的日志给备份到备份服务器上。
#!/usr/bin/python3
# 2022-07-25
import datetime
import os
import tarfile
def get_yesterday():
yesterday = datetime.date.today() + datetime.timedelta(-1)
return yesterday
def compress_log(file_name, mode, logs_list):
with tarfile.open(file_name, mode) as tar_obj:
for tmp_file in logs_list:
tar_obj.add(tmp_file)
def scp_to_remote_server(file_name, server, backup_path):
cmd = f'scp {file_name} root@{server}:{backup_path}'
os.system(cmd)
def remove_file(file_name, logs_list):
os.remove(file_name)
for log in logs_list:
os.remove(log)
if __name__ == '__main__':
current_file_list = []
file_path = '/api/log/'
remote_server = '10.0.1.194'
remote_server_backup_path = '/data/api_log_backup/193/'
os.chdir(file_path)
file_list = os.listdir()
tar_file_name = f"{str(get_yesterday())}.tar.gz"
open_model = "w:gz"
for current in file_list:
if str(get_yesterday()) in current:
current_file_list.append(current)
compress_log(tar_file_name, open_model, current_file_list)
scp_to_remote_server(tar_file_name, remote_server, remote_server_backup_path)
remove_file(tar_file_name, current_file_list)