将所有plesk MySQL数据库备份到单个文件


0

HY,

因为我是shell脚本的新手,所以我需要一只手。我目前将所有mydatabase备份到一个文件,这使得恢复变得非常困难。第二个问题是我的MySQL密码由于Plesk错误而无法正常工作,我从“/etc/psa/.psa.shadow”获取密码。这是我用来将所有数据库备份到单个文件的代码。

mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` --all-databases | bzip2 -c > /root/21.10.2013.sql.bz2

我在网上发现了一些将每个数据库备份到单个文件的脚本,但我不知道如何让它们适合我的情况。这是一个示例脚本:

for db in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $db | gzip > "/backups/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done

有人可以帮我把上面的脚本用于我的情况吗?要求:

  1. 使用plesk密码位置将每个数据库备份到单个文件。

Answers:


0

试试这个:

for db in $(mysql -e'show databases'-ss -skip-column-names); 做mysqldump -uadmin -p`cat / etc / psa / .psa.shadow` $ db | bzip2 -c>“/ root / $(date +%d-%m-%Y).sql.bz2”; DONE


ERROR 1045(28000):拒绝用户'root'@'localhost'(使用密码:NO)。不要工作......我认为输出文件夹的名称是错误的应该是“/ root / $ db - $(date +%d-%m-%Y).sql.bz2”
Michael

0

因此,要将PLESK的每个数据库备份到单个文件,并跳过我找到/制作代码的一些文件:

for db in $(mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e 'show databases' -s --skip-column-names); do
if [[ "$db" != *schema* && "$db" != *phpmyadmin* && "$db" != "event" && "$db" != "psa" && "$db" != "mysql" ]]; then
mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` $db | bzip2 -c > /root/backup/mysql/$db.sql.bz2
fi
done

随意使这个代码更好。


0

尝试:

for db in $(mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e 'show databases' -s --skip-column-names); do mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` --skip-lock-tables $db | gzip > "/var/www/mysql/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done

这在Plesk服务器中使用很好::根据要求测试使用路径。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.