Postgresql 在cron中备份postgres数据库的问题
我正在尝试备份postgres数据库。为此,我正在运行cron作业。问题是postgres在用户postgres下运行,我不认为我可以在ubuntu用户下运行cron作业。我试图在postgres用户下创建一个cron作业,但也没有成功。我的脚本,如果以postgres用户的身份登录就可以了。 这是我的剧本Postgresql 在cron中备份postgres数据库的问题,postgresql,ubuntu,crontab,postgresql-9.2,postgresql-9.3,Postgresql,Ubuntu,Crontab,Postgresql 9.2,Postgresql 9.3,我正在尝试备份postgres数据库。为此,我正在运行cron作业。问题是postgres在用户postgres下运行,我不认为我可以在ubuntu用户下运行cron作业。我试图在postgres用户下创建一个cron作业,但也没有成功。我的脚本,如果以postgres用户的身份登录就可以了。 这是我的剧本 #!/bin/bash # Location to place backups. backup_dir="/home/postgres-backup/" #String to append
#!/bin/bash
# Location to place backups.
backup_dir="/home/postgres-backup/"
#String to append to the name of the backup files
backup_date=`date +%d-%m-%Y`
#Numbers of days you want to keep copie of your databases
number_of_days=30
databases=`psql -l -t | cut -d'|' -f1 | sed -e 's/ //g' -e '/^$/d'`
for i in $databases; do
if [ "$i" != "template0" ] && [ "$i" != "template1" ]; then
echo Dumping $i to $backup_dir$i\_$backup_date
pg_dump -Fc $i > $backup_dir$i\_$backup_date
fi
done
find $backup_dir -type f -prune -mtime +$number_of_days -exec rm -f {} \;
如果我这样做
sudo su - postgres
我明白了
当我这么做的时候
./backup_all_db.sh
在/home/postgres backup/
然而,无论我是在postgres下还是在ubuntu下添加cron作业,cronjob都不起作用
这是我的工作
0,30 * * * * /var/lib/pgsql/backup_all_db.sh 1> /dev/null 2> /home/cron.err
非常感谢您的帮助使用户能够运行cron作业 如果存在
/etc/cron.allow
文件,则必须在其中列出用户才能允许运行crontab命令。如果/etc/cron.allow
文件不存在,但/etc/cron.deny
文件存在,则必须在/etc/cron.deny
文件中列出用户才能运行crontab
在两个文件都不存在的情况下,当前Ubuntu(和Debian,但不是其他Linux和UNIX系统)的默认设置是允许所有用户使用crontab运行作业
添加cron作业
使用此命令为当前用户添加cron作业:
crontab -e
使用此命令为指定用户添加cron作业(需要权限):
Ubuntu中的Crontab:允许用户运行cron作业 如果存在
/etc/cron.allow
文件,则必须在其中列出用户才能允许运行crontab命令。如果/etc/cron.allow
文件不存在,但/etc/cron.deny
文件存在,则必须在/etc/cron.deny
文件中列出用户才能运行crontab
在两个文件都不存在的情况下,当前Ubuntu(和Debian,但不是其他Linux和UNIX系统)的默认设置是允许所有用户使用crontab运行作业
添加cron作业
使用此命令为当前用户添加cron作业:
crontab -e
使用此命令为指定用户添加cron作业(需要权限):
Ubuntu中的Crontab:允许用户运行cron作业 如果存在
/etc/cron.allow
文件,则必须在其中列出用户才能允许运行crontab命令。如果/etc/cron.allow
文件不存在,但/etc/cron.deny
文件存在,则必须在/etc/cron.deny
文件中列出用户才能运行crontab
在两个文件都不存在的情况下,当前Ubuntu(和Debian,但不是其他Linux和UNIX系统)的默认设置是允许所有用户使用crontab运行作业
添加cron作业
使用此命令为当前用户添加cron作业:
crontab -e
使用此命令为指定用户添加cron作业(需要权限):
Ubuntu中的Crontab:允许用户运行cron作业 如果存在
/etc/cron.allow
文件,则必须在其中列出用户才能允许运行crontab命令。如果/etc/cron.allow
文件不存在,但/etc/cron.deny
文件存在,则必须在/etc/cron.deny
文件中列出用户才能运行crontab
在两个文件都不存在的情况下,当前Ubuntu(和Debian,但不是其他Linux和UNIX系统)的默认设置是允许所有用户使用crontab运行作业
添加cron作业
使用此命令为当前用户添加cron作业:
crontab -e
使用此命令为指定用户添加cron作业(需要权限):
Ubuntu中的Crontab:为什么使用反斜杠?为什么不使用
${backup\u dir}
等?/home通常属于root,最终用户无法写入/home/cron.err。如果只使用0,30****/var/lib/pgsql/backup\u all\u db.sh会发生什么?为什么使用反斜杠?为什么不使用${backup\u dir}
等?/home通常属于root,最终用户无法写入/home/cron.err。如果只使用0,30****/var/lib/pgsql/backup\u all\u db.sh会发生什么?为什么使用反斜杠?为什么不使用${backup\u dir}
等?/home通常属于root,最终用户无法写入/home/cron.err。如果只使用0,30****/var/lib/pgsql/backup\u all\u db.sh会发生什么?为什么使用反斜杠?为什么不使用${backup\u dir}
等?/home通常属于root,最终用户无法写入/home/cron.err。如果只使用0,30****/var/lib/pgsql/backup\u all\u db.sh会发生什么?