需求背景:Linux服务器上面的配置文件(nginx、nacos、k8s等,分散在不同的目录)经常会发生变动,所以需要经常备份(根据日期存到指定目录);这样出现误操作时,还可以拯救一下。
这样的程序,本身倒是不难,关键问题是大家都很忙,不能在这个事上面浪费太多时间,要快速出活,这个时候让AI来写代码就非常方便了。
提问:写一个python脚本,将linux上面多个目录下的文件,按日期命名备份到指定目录下。
这个是文心一言给的答案, 在它的基础上,经常简单的调试和修改,就可以使用了,真是太方便了!
import shutil
import os
import datetime
# 定义需要备份的目录列表
source_dirs = [
'/path/to/directory1',
'/path/to/directory2',
'/path/to/directory3'
]
# 定义备份存储的根目录
backup_root = '/path/to/backup_root'
# 获取当前日期并格式化
current_date = datetime.datetime.now().strftime('%Y-%m-%d')
# 构造备份目录的完整路径
backup_dir = os.path.join(backup_root, current_date)
# 如果备份目录不存在,则创建
if not os.path.exists(backup_dir):
os.makedirs(backup_dir)
# 遍历所有需要备份的目录
for src_dir in source_dirs:
# 构造备份时目录的完整路径(以日期命名)
dest_dir = os.path.join(backup_dir, os.path.basename(src_dir))
# 如果目标目录不存在,则创建
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
# 使用shutil.copytree来复制目录,如果目标目录已存在,则抛出异常
# 这里我们通过删除已存在的目标目录来避免异常,注意这可能丢失数据
if os.path.exists(dest_dir):
shutil.rmtree(dest_dir)
# 复制目录
shutil.copytree(src_dir, dest_dir)
print(f'Directory {src_dir} has been backed up to {dest_dir}')
print('Backup completed successfully.')