I am running my system with the logs going into a dated directory. Then each night, I have a cron job that tars up the previous days directory.
Here is my script for the archive_command: #!/bin/bash echo "start" >> ~/archive_log_timings date >> ~/archive_log_timings source /home/postgres/etc/postgres.profile ## setup variables archiveFile=$1 ## full path with filename to be archived archiveFileName=$2 ## the file name to be archived serverPort=$3 ## port the server is running on serverName=`/bin/hostname` ## the name of this machine returnValue=0 ## Set the return code to success ( 1 for failur e) DATE=`/bin/date +%Y%m%d` fullArchiveDir=`echo ${archiveBaseDir}/${serverName}/${serverPort}/pg_xlog_arch/ ${DATE}` ## make sure the mount point is available if [ ! -d $archiveBaseDir ] then returnValue=1 echo "`/bin/hostname` missing directory $archiveBaseDir" | mail -s "URGENT DB ISSUE" $DBAPAGER sleep 300 else ## make sure the proper directory tree exists. If not build it. mkdir -p $fullArchiveDir ## get an md5sum of the original file originalMD5=`md5sum $archiveFile| awk '{print $1}'` ## copy of file to the new location cp -i ${archiveFile} ${fullArchiveDir}/. < /dev/null ## get an md5sum of the copied file copiedMD5=`md5sum ${fullArchiveDir}/$archiveFileName | awk '{print $1}'` ## see if the sums match if [ "$originalMD5" = "$copiedMD5" ] then ## remove the file from the current archive save directory currentArchiveDir=`echo ${archiveBaseDir}/${serverName}/${serverPort}/curren t_log` rm ${currentArchiveDir}/$archiveFileName ##2>/dev/null ###bzip2 ${fullArchiveDir}/$archiveFileName returnValue=0 else returnValue=1 echo "`/bin/hostname` - LOG ARCHIVE FAILED - `date`" | mail -s "URGENT DB IS SUE" $DBAPAGER sleep 300 fi fi echo "done" >> ~/archive_log_timings date >> ~/archive_log_timings exit $returnValue ---- Here is my tar command in cron: cd /postgresql/<port>/pg_xlog_arch/archive/<hostname>/<port>/pg_xlog_arch/ /usr/bin/find . -type d -mtime +1 | /bin/sort | /bin/sed 's/\.\///' | while read DIR do /bin/tar -cvzf ${DIR}.tar.gz $DIR /bin/rm -r $DIR done I think the tar script could use some further refinement, but for now it works. Chris On 4/11/07, Sean Murphy <[EMAIL PROTECTED]> wrote:
I'm in the process of moving an 8.2 server from Win32 to Ubuntu Linux. On Win32, I implemented WAL archiving with the archive_command "rar a -ep -m5 -s -t -dh w:/%f.rar %p" Anyway, I'm going to use WAL archiving on the new server, and need the files to be compressed. My first inclination is to use "tar -czf /walarchive/%f.tar.gz %p > /dev/null" Before I go with that, though, I was wondering if anybody had any specific experience / advice with a better command, reasons why this command might fail zero or succeed nonzero, or additional/different options for tar that would yield better results. Thanks, Sean ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq