我在 python 脚本中执行每日数据库转储,我正在寻找最有效的 python 方法来仅在最近的文件成功写入后删除当前文件,即仅在备份后删除 backup-12-11-2019.sql -13-11-2019 创建成功
问问题
46 次
2 回答
1
您可以使用try:...except:...esle:
以下代码。
import datetime
import os
now = datetime.datetime.utcnow()
try:
pg_dumpall('-h', DB_HOST, '-U', DB_USERNAME, '-p', DB_PORT, _out=BACKUP_FOLDER + 'backup-' + str(now.day) + '-' + str(now.month) + '-' + str(now.year) + '.sql')
except Exception as e:
print(e)
else:
previous_day = now - datetime.timedelta(days=1)
os.remove(BACKUP_FOLDER + 'backup-' + str(now.day - 1) + '-' + str(now.month) + '-' + str(now.year) + '.sql')
如果pg_dumpall
没有引发,Exception
它将删除以前的备份文件
最良好的问候
于 2019-11-14T10:00:18.157 回答
0
pg_dumpall -U pg_user > /tmp/tmp.txt
DUMP_STATUS=$?
echo "Dump status: $DUMP_STATUS" > /tmp/status.txt
subprocess.check_output([SCRIPT, "-d", date], shell=True).
我们能够想出一些东西来运行你想要运行的命令,同时检查它的返回值。
output = subprocess.check_output(['pg_dumpall', '-h', DB_HOST, '-U', DB_USERNAME, '-p', DB_PORT], stdout=outfile)
if output == 0:
print("Success")
os.remove(oldfile)
else:
print("Failure")
于 2019-11-13T16:14:40.757 回答