PostgreSQL 日志文件备份
随着信息安全的建设,在三级等保要求中,要求日志至少保留半年 180 天以上。那么 PostgreSQL 如何实现这一要求呢。
我们需要配置一个定时任务,定时的将数据库日志 log 下的文件按照生成的规则将超过一定时间的日志拷贝到其它的路径下,并删除 log 下的日志。下面是具体的实现方法
说明:创建存储日志的目录并配置定时任务
[root@localhost pgsql-12.8]# mkdir -p /backup/bakdir/postgresql/logbak/
[root@localhost pgsql-12.8]# crontab -e
59 1 * * * /usr/bin/find /usr/local/pgsql-12.8/data/log/ -name "*.log" -mtime +7 -exec cp {} /backup/bakdir/postgresql/logbak/ \; -exec rm {} \;
在目录下查看日志是否转移成功
[root@localhost pgsql-12.8]# cd /backup/bakdir/postgresql/logbak/
[root@localhost logbak]# ls -alh
total 8.0K
drwxr-xr-x 2 root root 86 Jan 22 11:10 .
drwxr-xr-x 3 root root 20 Jan 22 11:08 ..
-rw------- 1 root root 1.9K Jan 22 11:10 postgresql-2024-01-18_112052.log
-rw------- 1 root root 2.5K Jan 22 11:10 postgresql-2024-01-18_134854.log
[root@localhost logbak]# cd /usr/local/pgsql-12.8/data/log/
[root@localhost log]# ls -alh
total 48K
drwx------ 2 postgres postgres 246 Jan 22 11:10 .
drwx------ 21 postgres postgres 4.0K Jan 22 10:23 ..
-rw------- 1 postgres postgres 16K Jan 19 18:03 postgresql-2024-01-19_000000.log
-rw------- 1 postgres postgres 1.7K Jan 19 18:13 postgresql-2024-01-19_180355.log
-rw------- 1 postgres postgres 332 Jan 20 03:04 postgresql-2024-01-20_000000.log
-rw------- 1 postgres postgres 0 Jan 21 00:00 postgresql-2024-01-21_000000.log
-rw------- 1 postgres postgres 14K Jan 22 10:23 postgresql-2024-01-22_000000.log
-rw------- 1 postgres postgres 532 Jan 22 10:28 postgresql-2024-01-22_102301.log
[root@localhost log]#