Automated Backup Script Help (Linux)

Started by Carlos Mennensabout 14 years ago5 messagesgeneral
Jump to latest
#1Carlos Mennens
carlos.mennens@gmail.com

I'm trying to get the automated backup scripts to work from:

http://wiki.postgresql.org/wiki/Automated_Backup_on_Linux

Currently I'm using PostgreSQL 9.1.3 and have the following three files:

carlos@db1:~/postgresql$ ls -l
total 20
drwxr-xr-x 2 carlos users 4096 Mar 7 13:13 backup
-rw-r--r-- 1 carlos users 1434 Mar 7 13:19 pg_backup.config
-rw-r--r-- 1 carlos users 4304 Mar 7 12:54 pg_backup_rotated.sh
-rw-r--r-- 1 carlos users 3379 Mar 7 12:54 pg_backup.sh

My Linux shell user 'carlos' has rwx to the entire directory as well
as the database role 'carlos' is listed as a REPLICATION role:

postgres=# \du
List of roles
Role name | Attributes
| Member of
-----------+----------------------------------------------------------------+-----------
carlos | Superuser, No inheritance, Create role, Create DB,
Replication | {it}

Now when I attempt to run the script for the 1st time, I get the
following error:

carlos@db1:~/postgresql$ pwd
/home/carlos/postgresql

carlos@db1:~/postgresql$ ls -l
total 20
drwxr-xr-x 2 carlos users 4096 Mar 7 13:13 backup
-rw-r--r-- 1 carlos users 1435 Mar 7 13:25 pg_backup.config
-rw-r--r-- 1 carlos users 4304 Mar 7 12:54 pg_backup_rotated.sh
-rw-r--r-- 1 carlos users 3379 Mar 7 12:54 pg_backup.sh

carlos@db1:~/postgresql$ sh pg_backup.sh
pg_backup.sh: 7: cd: can't cd to pg_backup.sh
pg_backup.sh: 8: pg_backup.sh: source: not found
pg_backup.sh: 16: [: !=: unexpected operator
Making backup directory in 2012-03-07/
pg_backup.sh: 54: pg_backup.sh: Bad substitution

So the only thing this script is doing for me is creating an empty
folder with the date as the name. Any idea what I'm doing wrong? I've
attached the configuration file since this is the only thing I was
told that needs to be modified. The contents are exactly as they are
on my server.

Attachments:

pg_backup.configapplication/octet-stream; name=pg_backup.configDownload
#2Andrew Gould
andrewlylegould@gmail.com
In reply to: Carlos Mennens (#1)
Re: Automated Backup Script Help (Linux)

On Wed, Mar 7, 2012 at 12:33 PM, Carlos Mennens
<carlos.mennens@gmail.com> wrote:

I'm trying to get the automated backup scripts to work from:

http://wiki.postgresql.org/wiki/Automated_Backup_on_Linux

Currently I'm using PostgreSQL 9.1.3 and have the following three files:

carlos@db1:~/postgresql$ ls -l
total 20
drwxr-xr-x 2 carlos users 4096 Mar  7 13:13 backup
-rw-r--r-- 1 carlos users 1434 Mar  7 13:19 pg_backup.config
-rw-r--r-- 1 carlos users 4304 Mar  7 12:54 pg_backup_rotated.sh
-rw-r--r-- 1 carlos users 3379 Mar  7 12:54 pg_backup.sh

My Linux shell user 'carlos' has rwx to the entire directory as well
as the database role 'carlos' is listed as a REPLICATION role:

postgres=# \du
                                    List of roles
 Role name |                           Attributes
    | Member of
-----------+----------------------------------------------------------------+-----------
 carlos    | Superuser, No inheritance, Create role, Create DB,
Replication | {it}

Now when I attempt to run the script for the 1st time, I get the
following error:

carlos@db1:~/postgresql$ pwd
/home/carlos/postgresql

carlos@db1:~/postgresql$ ls -l
total 20
drwxr-xr-x 2 carlos users 4096 Mar  7 13:13 backup
-rw-r--r-- 1 carlos users 1435 Mar  7 13:25 pg_backup.config
-rw-r--r-- 1 carlos users 4304 Mar  7 12:54 pg_backup_rotated.sh
-rw-r--r-- 1 carlos users 3379 Mar  7 12:54 pg_backup.sh

carlos@db1:~/postgresql$ sh pg_backup.sh
pg_backup.sh: 7: cd: can't cd to pg_backup.sh

Doesn't this mean it's trying to cd to a file instead of a directory?

Andrew

#3John R Pierce
pierce@hogranch.com
In reply to: Carlos Mennens (#1)
Re: Automated Backup Script Help (Linux)

On 03/07/12 10:33 AM, Carlos Mennens wrote:

carlos@db1:~/postgresql$ sh pg_backup.sh
pg_backup.sh: 7: cd: can't cd to pg_backup.sh
pg_backup.sh: 8: pg_backup.sh: source: not found
pg_backup.sh: 16: [: !=: unexpected operator
Making backup directory in 2012-03-07/
pg_backup.sh: 54: pg_backup.sh: Bad substitution

So the only thing this script is doing for me is creating an empty
folder with the date as the name. Any idea what I'm doing wrong? I've
attached the configuration file since this is the only thing I was
told that needs to be modified. The contents are exactly as they are
on my server.

whats that pg_backup.sh script look like? you're getting shell errors
on line 7 and 8 of the script.

this has nothing to do with postgresql.

--
john r pierce N 37, W 122
santa cruz ca mid-left coast

#4Carlos Mennens
carlos.mennens@gmail.com
In reply to: John R Pierce (#3)
Re: Automated Backup Script Help (Linux)

On Wed, Mar 7, 2012 at 2:08 PM, John R Pierce <pierce@hogranch.com> wrote:

whats that pg_backup.sh script look like?  you're getting shell errors on
line 7 and 8 of the script.

I didn't attach it since it's the same as the link I referenced in my
original post. I'll attach it in here for those that don't or can't
download it:

this has nothing to do with postgresql.

It's a scrip to backup and interact with the database so I think it
does. It may not be specifically what this mailing list was intended
for but it's the best suited that I could find not to mention the
script is posted on the main PostgreSQL wiki site so it appears to be
legit and supported...

http://wiki.postgresql.org/wiki/Automated_Backup_on_Linux

Thanks for any info!

Attachments:

pg_backup.txttext/plain; charset=US-ASCII; name=pg_backup.txtDownload
#5John R Pierce
pierce@hogranch.com
In reply to: Carlos Mennens (#4)
Re: Automated Backup Script Help (Linux)

On 03/07/12 11:20 AM, Carlos Mennens wrote:

SCRIPTPATH=$(cd ${0%/*}&& pwd -P)

thats line 7 by my count.

thats some very strange stuff there. AFAIK ${0%/*} means, take $0
which is the name of the invoking command ('sh' in the invocation you
gave), match and remove the results of the pattern /*

I think you're NOT supposed to invoke this script with `sh scriptname`
but instead invoke it as 'path/to/scriptname' (thereforce, it has to be
chmod +x). if it was invoked as ./script, then it would cd ., and set
SCRIPTPATH to the full path of .

again, this is a linux shell issue, has nothing to do with postgres,
regardless of the rest of the script.

--
john r pierce N 37, W 122
santa cruz ca mid-left coast