本文概述
- 1.创建备份脚本
- 2.运行备份脚本
在本文中, 我们将与你分享一个非常简单的脚本, 以使用Plesk中的mysqldump生成压缩备份。
1.创建备份脚本 继续创建备份脚本, 在这种情况下, 我们将命名为plesk_db_backup.sh并将以下代码附加到该脚本:
#!/bin/bash# Script to export all the databases stored in MySQL Server in Plesk# Note: This file needs to use the LF break line format, not CRLF# Is recommendable as well to use absolute paths for the directories# @author Carlos Delgado <
dev@ourcodeworld.com>
# Define constants of the scriptUSERNAME="admin"BACKUP_DIRECTORY="/var/ourcodeworld-db-backups/backups"# Important:# This directory will be created and **DELETED** after executing the scriptTMP_BACKUP_DIRECTORY="/var/ourcodeworld-db-backups/tmp-backups"EXCLUDED_DATABASES="Database|information_schema|performance_schema|mysql"# 1. Build array of databases registeredBASES_DE_DATOS=$(MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u $USERNAME -e "SHOW DATABASES;
" | tr -d "| " | egrep -v $EXCLUDED_DATABASES)printf "Starting backup of databases ... \n\n"# 2. Verify if the temporary backup folders exists, otherwise create it [ -d $TMP_BACKUP_DIRECTORY ] || mkdir $TMP_BACKUP_DIRECTORY# 3. Iterate over the database array available for the signed user (admin)for db in $BASES_DE_DATOS;
doprintf "Exporting database: '$db' | "# 3. Dump database with mysqldump# MYSQL_PWD is used to access as admin in MySQL inside Plesk based servers# MYSQL_PWD=`cat /etc/psa/.psa.shadow`BKP_FILENAME=`date +%Y%m%d`.$db.sql.gzMYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u $USERNAME --databases $db | gzip >
$TMP_BACKUP_DIRECTORY/$BKP_FILENAMEprintf "OK\n"doneprintf "\nThe backups have been succesfully generated ... Compressing all databases into a single file ... \n"# 5. Verify if the backup folder exists in the current directory, otherwise create it[ -d $BACKUP_DIRECTORY ] || mkdir $BACKUP_DIRECTORY# 6. Compress generated backups (.sql files)FNL_BKP_FILENAME=`date +%Y_%m_%d_%H_%M_%S`.mysql_databases_backup.tar.gztar -zcvf $BACKUP_DIRECTORY/$FNL_BKP_FILENAME $TMP_BACKUP_DIRECTORYprintf "\nCleaning up !\n"# 7. Delete the temporary directory of backupsrm -rf $TMP_BACKUP_DIRECTORYprintf "\nBackup succesfully generated. \n"
粘贴内容之后, 请确保使用LF(unix)行尾而不是CLRF(Windows)将shell脚本保存在系统上, 否则shell脚本将不会运行(即使具有执行权限)。
怎么运行的
备份的逻辑如下:首先, 需要以管理员身份定义用于访问plesk的用户名, 在本例中, 用户名是相同的” admin” 。你还需要定义一些变量, 这些变量包含一些将在备份期间使用的目录, 一些变量用于存储临时文件, 而另一些变量将包含最终的备份文件。然后, 将创建一个新变量, 它将包含MySQL服务器上可用数据库的名称数组, 另外还有一个变量将某些数据库排除在外, 以防你需要排除它们。
阵列可用后, 脚本需要验证是否有一个临时备份目录, 其中包含将在以后压缩的转储, 如果不存在, 将创建该临时转储, 并在内部创建转储。现在, 备份的重点是执行mysqldump命令, 该命令针对数据库名称数组中的每个项目执行。将转储的.sql文件压缩并存储在临时目录中。转储每个数据库后, 脚本将压缩临时目录的所有内容, 并在备份目录内创建一个新的压缩tar文件。
创建备份后, 将删除临时文件夹, 并且该过程完成!
2.运行备份脚本 现在你知道了脚本的工作原理, 你只需要执行它, 因此请确保使用以下命令将执行权限授予SH文件:
chmod +x plesk_db_backup.sh
然后以你想要的方式运行shell脚本:
# Simply run the shell script directly if it has write permissions./plesk_db_backup.sh# Or run the shell script with the sh commandsh ./plesk_db_backup.sh
在终端中生成的输出将类似于:
Starting backup of databases ... Exporting database: 'ourcodeworld-es' | OKExporting database: 'ourcodeworld' | OKExporting database: 'ourcodeworld-docs' | OKExporting database: 'other_database' | OKThe backups have been succesfully generated ... Compressing all databases into a single file .../var/ourcodeworld-db-backups/tmp-backups/20180517.ourcodeworld-es.sql.gz/var/ourcodeworld-db-backups/tmp-backups/20180517.ourcodeworld.sql.gz/var/ourcodeworld-db-backups/tmp-backups/20180517.ourcodeworld-docs.sql.gz/var/ourcodeworld-db-backups/tmp-backups/20180517.other_database.sql.gzCleaning up !Backup succesfully generated.
脚本完成后, 你将在创建脚本的目录中有一个新文件夹, 即备份。在内部, 你将找到一个gzip压缩文件, 其中包含Plesk的MySQL服务器中可用的每个数据库的mysqldump生成的所有压缩转储:
文章图片
【在Plesk中创建MySQL Server数据库的非增量(逻辑备份)自动备份外壳脚本(sh)】编码愉快!
推荐阅读
- 如何在AWS Ubuntu 16.04实例上以root身份允许SSH和SFTP访问
- logstash|使用Logstash将MySQL数据导入Elasticsearch
- 如何在Mac上找到Android SDK Manager路径
- Android向后兼容性
- 虽然不建议安装Android Studio SDK组件()
- Android SDK下载作为Gradle Build的一部分
- Android应用程序使用Facebook登录无法安装Facebook App
- Android模拟器(安装错误:INSTALL_FAILED_VERSION_DOWNGRADE)
- 如果Android版本在“X”下如何隐藏ImageButton()