python - 文件夹+数据库的备份 - Python

标签 python bash postgresql backup archiving

我觉得这个挺精致的,

我有多个项目文件夹,我想备份到一个 zip/tar 文件中,但我想避免备份诸如 pyc 文件和临时文件之类的文件。

我还有一个 Postgres 数据库需要备份。


将此操作作为 python 脚本运行有什么技巧吗?

此外,是否有办法阻止进程占用进程中的资源?


非常感谢您的帮助。

最佳答案

如果您使用的是 Linux(或任何其他形式的 Unix,例如 MacOSX),一种降低进程优先级的简单方法——因此,如果其他进程需要的话,间接地降低它对 CPU 的消耗——是nice命令。在 Python(相同的操作系统)中,os.nice让您的程序“让自己变得更好”(降低优先级 &c)。

为了备份 PostgreSQL 数据库,我推荐 PostgreSQL's own tools ;对于压缩除 pyc 文件(和临时文件——无论您如何识别这些文件)之外的文件夹,Python 非常适合。例如:

>>> os.chdir('/tmp/az')
>>> f = open('/tmp/a.zip', 'wb')
>>> z = zipfile.ZipFile(f, 'w')
>>> for root, dirs, files in os.walk('.'):
...   for fn in files:
...     if fn.endswith('.pyc'): continue
...     fp = os.path.join(root, fn)
...     z.write(fp)
... 
>>> z.close()
>>> f.close()
>>> 

这会压缩所述子树中的所有文件,除了那些以 .pyc 结尾的文件(不压缩——如果你想压缩,添加第三个参数 zipfile.ZIP_DEFLATEDzipfile.ZipFile调用)。再简单不过了。

关于python - 文件夹+数据库的备份 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2504907/

相关文章:

python - 如何将django admin中输入的时间转换为utc?

python - Python 中的时间密集型集合处理

bash四舍五入到最接近的4的倍数

postgresql - PostgreSQL 14/PostgREST 中策略的列级安全性?

database - PostgreSql 未在 Ubuntu 14.04 上启动 - 9.3/main(端口 5432): down

python - 使用 cx_Freeze 的下一步是什么?

python - 使用 python 和 MySQLdb 将多个字典对象插入到 MySQL 数据库中

bash 不显示 126 以上的扩展 ASCII 字符

c - 我如何编写一个函数,它接受可变数量的参数(整数)并使用标准参数输出它们?

postgresql - Postgres 触发器和行锁定