| #!/bin/bash | #!/bin/bash | ||||
| Script_SRC_BAK=JOEbackup-mysql-Auto.sh.SRC | |||||
| Script_TMP_BAK=JOEbackup-mysql-Auto.sh.TMP | |||||
| Script_REAL_BAK=JOEbackup-mysql-Auto.sh | |||||
| Script_SRC_Restore=JOErestore_from_local-mysql.sh.SRC | |||||
| Script_TMP_Restore=JOErestore_from_local-mysql.sh.TMP | |||||
| Script_REAL_Restore=JOErestore_from_local-mysql.sh | |||||
| BAK_Project=JOE | |||||
| Script_SRC_BAK=${BAK_Project}backup-mysql-Auto.sh.SRC | |||||
| Script_TMP_BAK=${BAK_Project}backup-mysql-Auto.sh.TMP | |||||
| Script_REAL_BAK=${BAK_Project}backup-mysql-Auto.sh | |||||
| Script_SRC_Restore=${BAK_Project}restore_from_local-mysql.sh.SRC | |||||
| Script_TMP_Restore=${BAK_Project}restore_from_local-mysql.sh.TMP | |||||
| Script_REAL_Restore=${BAK_Project}restore_from_local-mysql.sh | |||||
| Script_SRC_Script=${BAK_Project}backup-Script_${BAK_Project}-Auto.sh.SRC | |||||
| Script_TMP_Script=${BAK_Project}backup-Script_${BAK_Project}-Auto.sh.TMP | |||||
| Script_REAL_Script=${BAK_Project}backup-Script_${BAK_Project}-Auto.sh | |||||
| Script_SRC_Source_Files=${BAK_Project}backup-Source_Files-Auto.sh.SRC | |||||
| Script_TMP_Source_Files=${BAK_Project}backup-Source_Files-Auto.sh.TMP | |||||
| Script_REAL_Source_Files=${BAK_Project}backup-Source_Files-Auto.sh | |||||
| Script_SRC_Remote_Backup=${BAK_Project}Remote_backup.sh.SRC | |||||
| Script_TMP_Remote_Backup=${BAK_Project}Remote_backup.sh.TMP | |||||
| Script_REAL_Remote_Backup=${BAK_Project}Remote_backup.sh | |||||
| USER=`whoami` | USER=`whoami` | ||||
| PWFile="/home/$USER/PW/mysql_JOE.info" | |||||
| WORK_Folder="/ED/JOE/Script_JOE" | |||||
| SOUCE_Folder="/ED/JOE/Source_Files" | |||||
| Bak_Folder="/ED/JOE/Backup_file" | |||||
| PWFile="/home/$USER/PW/mysql_${BAK_Project}.info" | |||||
| WORK_Folder="/ED/${BAK_Project}/Script_${BAK_Project}" | |||||
| SOUCE_Folder="/ED/${BAK_Project}/Source_Files" | |||||
| Bak_Folder="/ED/${BAK_Project}/Backup_file" | |||||
| UTY_1=expect | UTY_1=expect | ||||
| UTY_2=lsscsi | UTY_2=lsscsi | ||||
| CHK_QTY=9 | CHK_QTY=9 | ||||
| cp $Script_SRC_BAK $Script_TMP_BAK | |||||
| cp $Script_SRC_Restore $Script_TMP_Restore | |||||
| cp $Script_SRC_BAK $Script_TMP_BAK; echo $? | |||||
| cp $Script_SRC_Restore $Script_TMP_Restore; echo $? | |||||
| cp $Script_SRC_Script $Script_TMP_Script; echo $? | |||||
| cp $Script_SRC_Source_Files $Script_TMP_Source_Files; echo $? | |||||
| cp $Script_SRC_Remote_Backup $Script_TMP_Remote_Backup; echo $? | |||||
| echo -e -n "You are \033[44;37m$USER\033[0m. Is it correct? (y|n) " | echo -e -n "You are \033[44;37m$USER\033[0m. Is it correct? (y|n) " | ||||
| read yn | read yn | ||||
| if [[ $yn == y ]]; then | if [[ $yn == y ]]; then | ||||
| echo -e "Change necessary files owner to $USER" | echo -e "Change necessary files owner to $USER" | ||||
| sudo chown $USER:$USER /ED/JOE -R | |||||
| sudo chown $USER:$USER /ED/${BAK_Project} -R | |||||
| elif [[ $yn == n ]]; then | elif [[ $yn == n ]]; then | ||||
| echo "\033[31mYour input is $yn. Exit. " | echo "\033[31mYour input is $yn. Exit. " | ||||
| echo | echo | ||||
| sed -i 's/#CHK_BAK_Disk_A_Mount_Point/CHK_BAK_Disk_A_Mount_Point/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_A_Mount_Point/CHK_BAK_Disk_A_Mount_Point/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_A_Mount_Status/CHK_BAK_Disk_A_Mount_Status/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_A_Mount_Status/CHK_BAK_Disk_A_Mount_Status/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_A_Hostname_Folder/CHK_BAK_Disk_A_Hostname_Folder/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_A_Hostname_Folder/CHK_BAK_Disk_A_Hostname_Folder/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_A_JOE_BAK_Folder/CHK_BAK_Disk_A_JOE_BAK_Folder/g' $Script_TMP_BAK | |||||
| sed -i "s/#CHK_BAK_Disk_A_${BAK_Project}_BAK_Folder/CHK_BAK_Disk_A_${BAK_Project}_BAK_Folder/g" $Script_TMP_BAK | |||||
| sed -i 's/#CP_TO_BAK_Disk_A/CP_TO_BAK_Disk_A/g' $Script_TMP_BAK | sed -i 's/#CP_TO_BAK_Disk_A/CP_TO_BAK_Disk_A/g' $Script_TMP_BAK | ||||
| sed -i 's/#CP_TO_BAK_Disk_A/CP_TO_BAK_Disk_A/g' $Script_TMP_Script_ | |||||
| sed -i 's/#CP_TO_BAK_Disk_A/CP_TO_BAK_Disk_A/g' $Script_TMP_Source_Files | |||||
| echo -e " >> Set it done. " | echo -e " >> Set it done. " | ||||
| echo | echo | ||||
| elif [[ $MODE == "C" ]]; then | elif [[ $MODE == "C" ]]; then | ||||
| sed -i 's/#CHK_BAK_Disk_A_Mount_Point/CHK_BAK_Disk_A_Mount_Point/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_A_Mount_Point/CHK_BAK_Disk_A_Mount_Point/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_A_Mount_Status/CHK_BAK_Disk_A_Mount_Status/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_A_Mount_Status/CHK_BAK_Disk_A_Mount_Status/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_A_Hostname_Folder/CHK_BAK_Disk_A_Hostname_Folder/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_A_Hostname_Folder/CHK_BAK_Disk_A_Hostname_Folder/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_A_JOE_BAK_Folder/CHK_BAK_Disk_A_JOE_BAK_Folder/g' $Script_TMP_BAK | |||||
| sed -i "s/#CHK_BAK_Disk_A_${BAK_Project}_BAK_Folder/CHK_BAK_Disk_A_${BAK_Project}_BAK_Folder/g" $Script_TMP_BAK | |||||
| sed -i 's/#CP_TO_BAK_Disk_A/CP_TO_BAK_Disk_A/g' $Script_TMP_BAK | sed -i 's/#CP_TO_BAK_Disk_A/CP_TO_BAK_Disk_A/g' $Script_TMP_BAK | ||||
| sed -i 's/#CP_TO_BAK_Disk_A/CP_TO_BAK_Disk_A/g' $Script_TMP_Script | |||||
| sed -i 's/#CP_TO_BAK_Disk_A/CP_TO_BAK_Disk_A/g' $Script_TMP_Source_Files | |||||
| echo -e " >> Set it done. " | echo -e " >> Set it done. " | ||||
| echo | echo | ||||
| sed -i 's/#CHK_BAK_Disk_B_Mount_Point/CHK_BAK_Disk_B_Mount_Point/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_B_Mount_Point/CHK_BAK_Disk_B_Mount_Point/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_B_Mount_Status/CHK_BAK_Disk_B_Mount_Status/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_B_Mount_Status/CHK_BAK_Disk_B_Mount_Status/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_B_Hostname_Folder/CHK_BAK_Disk_B_Hostname_Folder/g' $Script_TMP_BAK | sed -i 's/#CHK_BAK_Disk_B_Hostname_Folder/CHK_BAK_Disk_B_Hostname_Folder/g' $Script_TMP_BAK | ||||
| sed -i 's/#CHK_BAK_Disk_B_JOE_BAK_Folder/CHK_BAK_Disk_B_JOE_BAK_Folder/g' $Script_TMP_BAK | |||||
| sed -i "s/#CHK_BAK_Disk_B_${BAK_Project}_BAK_Folder/CHK_BAK_Disk_B_${BAK_Project}_BAK_Folder/g" $Script_TMP_BAK | |||||
| sed -i 's/#CP_TO_BAK_Disk_B/CP_TO_BAK_Disk_B/g' $Script_TMP_BAK | sed -i 's/#CP_TO_BAK_Disk_B/CP_TO_BAK_Disk_B/g' $Script_TMP_BAK | ||||
| sed -i 's/#CP_TO_BAK_Disk_B/CP_TO_BAK_Disk_B/g' $Script_TMP_Script | |||||
| sed -i 's/#CP_TO_BAK_Disk_B/CP_TO_BAK_Disk_B/g' $Script_TMP_Source_Files | |||||
| echo -e " >> Set it done. " | echo -e " >> Set it done. " | ||||
| echo | echo | ||||
| else | else | ||||
| echo -e " \033[31m01. Fail. $PWFile doesn't exist. Please create one. Exit \033[0m" | echo -e " \033[31m01. Fail. $PWFile doesn't exist. Please create one. Exit \033[0m" | ||||
| echo | echo | ||||
| echo -e "$PWFile Content example: " | echo -e "$PWFile Content example: " | ||||
| echo -e "Database_Name: db_joe_" | |||||
| echo -e "Database_Name: db_ed8_" | |||||
| echo -e "ID: ed" | echo -e "ID: ed" | ||||
| echo -e "Password: edat****" | echo -e "Password: edat****" | ||||
| echo | echo | ||||
| echo -e " \033[31mm07. Fail. The utility ($UTY_3) not be installed. \033[0m" | echo -e " \033[31mm07. Fail. The utility ($UTY_3) not be installed. \033[0m" | ||||
| fi | fi | ||||
| } | } | ||||
| CHK_UTY_4 (){ | CHK_UTY_4 (){ | ||||
| man $UTY_4 > /dev/null 2>&1 | man $UTY_4 > /dev/null 2>&1 | ||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " \033[34m08. Pass. The utility ($UTY_4) was installed. Setting JOErestore_from_local-mysql.sh use it. \033[0m" | |||||
| echo -e " \033[34m08. Pass. The utility ($UTY_4) was installed. Setting ${BAK_Project}restore_from_local-mysql.sh use it. \033[0m" | |||||
| sed -i 's/\/opt\/lampp\/bin\/mysql -u/mysql -u/g' $Script_TMP_Restore | sed -i 's/\/opt\/lampp\/bin\/mysql -u/mysql -u/g' $Script_TMP_Restore | ||||
| i=$((i+1)) | i=$((i+1)) | ||||
| else | else | ||||
| fi | fi | ||||
| fi | fi | ||||
| } | } | ||||
| CHK_UTY_5 (){ | CHK_UTY_5 (){ | ||||
| man $UTY_5 > /dev/null 2>&1 | man $UTY_5 > /dev/null 2>&1 | ||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " \033[34m09. Pass. The utility ($UTY_5) was installed. Setting JOEbackup-mysql-Auto.sh use it. \033[0m" | |||||
| echo -e " \033[34m09. Pass. The utility ($UTY_5) was installed. Setting ${BAK_Project}backup-mysql-Auto.sh use it. \033[0m" | |||||
| sed -i 's/\/opt\/lampp\/bin\/mysqldump -u/mysqldump -u/g' $Script_TMP_BAK | sed -i 's/\/opt\/lampp\/bin\/mysqldump -u/mysqldump -u/g' $Script_TMP_BAK | ||||
| i=$((i+1)) | i=$((i+1)) | ||||
| else | else | ||||
| fi | fi | ||||
| } | } | ||||
| SEL_REMOTE_BAK (){ | |||||
| echo -e "\033[32mThere two remote backup plan you can use.\033[0m (\033[35mPLAN#X\033[0m and \033[36mPLAN#Y\033[0m)" | |||||
| echo -e -n "\033[33m1. Do you want to enable \033[35mPlan#X\033[0m? (y|n) " | |||||
| read yn | |||||
| if [[ $yn == y ]]; then | |||||
| echo -e " Your input is y. Enabling the PLAN#X..." | |||||
| sed -i 's/#MKDIR_REMOTE_BAK_Folder_BAK_Disk_X/MKDIR_REMOTE_BAK_Folder_BAK_Disk_X/g' $Script_TMP_Remote_Backup | |||||
| sed -i 's/#SCP_TO_BAK_Disk_X/SCP_TO_BAK_Disk_X/g' $Script_TMP_Remote_Backup | |||||
| elif [[ $yn == n ]]; then | |||||
| echo -e " Your input is n. Disabling the PLAN#Y..." | |||||
| else | |||||
| echo -e " \033[31mWrong inout($yn). Exit \033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| echo -e -n "\033[33m2. Do you want to enable \033[36mPlan#Y\033[0m? (y|n) " | |||||
| read yn | |||||
| if [[ $yn == y ]]; then | |||||
| echo -e " Your input is y. Enabling the PLAN#Y..." | |||||
| sed -i 's/#MKDIR_REMOTE_BAK_Folder_BAK_Disk_Y/MKDIR_REMOTE_BAK_Folder_BAK_Disk_Y/g' $Script_TMP_Remote_Backup | |||||
| sed -i 's/#SCP_TO_BAK_Disk_Y/SCP_TO_BAK_Disk_Y/g' $Script_TMP_Remote_Backup | |||||
| elif [[ $yn == n ]]; then | |||||
| echo -e " Your input is n. Disabling the PLAN#Y..." | |||||
| else | |||||
| echo -e " \033[31mWrong inout($yn). Exit \033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| SEL_BAK_Mode | SEL_BAK_Mode | ||||
| echo | echo | ||||
| echo | echo | ||||
| CHK_UTY_3 | CHK_UTY_3 | ||||
| CHK_UTY_4 | CHK_UTY_4 | ||||
| CHK_UTY_5 | CHK_UTY_5 | ||||
| echo | |||||
| SEL_REMOTE_BAK | |||||
| cp $Script_TMP_BAK $Script_REAL_BAK | cp $Script_TMP_BAK $Script_REAL_BAK | ||||
| cp $Script_TMP_Restore $Script_REAL_Restore | cp $Script_TMP_Restore $Script_REAL_Restore | ||||
| cp $Script_TMP_Script $Script_REAL_Script | |||||
| cp $Script_TMP_Source_Files $Script_REAL_Source_Files | |||||
| cp $Script_TMP_Remote_Backup $Script_REAL_Remote_Backup | |||||
| rm -rf $Script_TMP_BAK $Script_TMP_Restore $Script_TMP_Script $Script_TMP_Source_Files $Script_TMP_Remote_Backup | |||||
| echo | echo | ||||
| echo | echo |
| Service1=/ED/JOE/Script_JOE/JOEbackup-mysql-Auto.sh | Service1=/ED/JOE/Script_JOE/JOEbackup-mysql-Auto.sh | ||||
| Service2=/ED/JOE/Script_JOE/JOEbackup-Script_JOE-Auto.sh | Service2=/ED/JOE/Script_JOE/JOEbackup-Script_JOE-Auto.sh | ||||
| Service3=/ED/JOE/Script_JOE/JOEbackup-Source_Files-Auto.sh | Service3=/ED/JOE/Script_JOE/JOEbackup-Source_Files-Auto.sh | ||||
| Service4=/ED/JOE/Script_JOE/JOERemote_backup.sh | |||||
| WHO=`whoami` | WHO=`whoami` | ||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e "\033[33mPass. $Service1 was set active. \033[0m" | echo -e "\033[33mPass. $Service1 was set active. \033[0m" | ||||
| else | else | ||||
| echo -e "\033[41;37mFail. $Service1 was appended, but not be set as executing. \033[0m" | |||||
| echo -e "\033[45;37mWarning! $Service1 was appended, but not be set as executing. \033[0m" | |||||
| echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | ||||
| echo -e "\033[33m#// Create backup file every 2 days at 02:08\033[0m" | |||||
| echo -e "\033[33m8 2 */2 * * $Service1\033[0m" | |||||
| echo -e "\033[33m#// Create backup file every 2 days at 01:08\033[0m" | |||||
| echo -e "\033[33m8 1 */2 * * $Service1\033[0m" | |||||
| fi | fi | ||||
| else | else | ||||
| echo -e "\033[41;37mFail. $Service1 was not be set as executing. \033[0m" | echo -e "\033[41;37mFail. $Service1 was not be set as executing. \033[0m" | ||||
| echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | ||||
| echo -e "\033[33m#// Create backup file every 2 days at 02:08\033[0m" | |||||
| echo -e "\033[33m8 2 */2 * * $Service1\033[0m" | |||||
| echo -e "\033[33m#// Create backup file every 2 days at 01:08\033[0m" | |||||
| echo -e "\033[33m8 1 */2 * * $Service1\033[0m" | |||||
| fi | fi | ||||
| echo | |||||
| crontab -u $WHO -l | grep "$Service2" > /dev/null 2>&1 | crontab -u $WHO -l | grep "$Service2" > /dev/null 2>&1 | ||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e "\033[33mPass. $Service2 was set active. \033[0m" | echo -e "\033[33mPass. $Service2 was set active. \033[0m" | ||||
| else | else | ||||
| echo -e "\033[41;37mFail. $Service2 was appended, but not be set as executing. \033[0m" | |||||
| echo -e "\033[45;37mWarning! $Service2 was appended, but not be set as executing. \033[0m" | |||||
| echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | ||||
| echo -e "\033[33m#// Create backup file every first day of month at 02:06" | |||||
| echo -e "\033[33m6 2 1 * * $Service2\033[0m" | |||||
| echo -e "\033[33m#// Create backup file every first day of month at 01:06" | |||||
| echo -e "\033[33m6 1 1 * * $Service2\033[0m" | |||||
| fi | fi | ||||
| else | else | ||||
| echo -e "\033[41;37mFail. $Service2 was not be set as executing. \033[0m" | echo -e "\033[41;37mFail. $Service2 was not be set as executing. \033[0m" | ||||
| echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | ||||
| echo -e "\033[33m#// Create backup file every first day of month at 02:06" | |||||
| echo -e "\033[33m6 2 1 * * $Service2\033[0m" | |||||
| echo -e "\033[33m#// Create backup file every first day of month at 01:06" | |||||
| echo -e "\033[33m6 1 1 * * $Service2\033[0m" | |||||
| fi | fi | ||||
| echo | |||||
| crontab -u $WHO -l | grep "$Service3" > /dev/null 2>&1 | crontab -u $WHO -l | grep "$Service3" > /dev/null 2>&1 | ||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e "\033[33mPass. $Service3 was set active. \033[0m" | echo -e "\033[33mPass. $Service3 was set active. \033[0m" | ||||
| else | else | ||||
| echo -e "\033[41;37mFail. $Service3 was appended, but not be set as executing. \033[0m" | |||||
| echo -e "\033[45;37mWarning! $Service3 was appended, but not be set as executing. \033[0m" | |||||
| echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | ||||
| echo -e "\033[33m#// Create backup file every first day of month at 02:00" | |||||
| echo -e "\033[33m0 2 1 * * $Service3\033[0m" | |||||
| echo -e "\033[33m#// Create backup file every first day of month at 01:00" | |||||
| echo -e "\033[33m0 1 1 * * $Service3\033[0m" | |||||
| fi | fi | ||||
| else | else | ||||
| echo -e "\033[41;37mFail. $Service3 was not be set as executing. \033[0m" | echo -e "\033[41;37mFail. $Service3 was not be set as executing. \033[0m" | ||||
| echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | ||||
| echo -e "\033[33m#// Create backup file every first day of month at 02:00" | |||||
| echo -e "\033[33m0 2 1 * * $Service3\033[0m" | |||||
| echo -e "\033[33m#// Create backup file every first day of month at 01:00" | |||||
| echo -e "\033[33m0 1 1 * * $Service3\033[0m" | |||||
| fi | |||||
| echo | |||||
| crontab -u $WHO -l | grep "$Service4" > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| crontab -u $WHO -l | grep "$Service4" | cut -c 1-8 | grep "#" > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e "\033[33mPass. $Service4 was set active. \033[0m" | |||||
| else | |||||
| echo -e "\033[45;37mWarning! $Service4 was appended, but not be set as executing. \033[0m" | |||||
| echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | |||||
| echo -e "\033[33m#// Create backup file every Monday 06:00" | |||||
| echo -e "\033[33m0 6 * * 1 $Service4\033[0m" | |||||
| fi | |||||
| else | |||||
| echo -e "\033[41;37mFail. $Service4 was not be set as executing. \033[0m" | |||||
| echo -e "Please add below info by command \033[32m\"crontab -u $WHO -e\"\033[0m" | |||||
| echo -e "\033[33m#// Create backup file every Monday 06:00" | |||||
| echo -e "\033[33m0 6 * * 1 $Service4\033[0m" | |||||
| fi | fi | ||||
| echo | |||||
| echo | echo | ||||
| #!/bin/bash | |||||
| if [ "$#" -ne 2 ]; then | |||||
| echo | |||||
| echo -e "######################################################################" | |||||
| echo -e "######\033[41;37m Wrong paraments input, please refer below usage info !!! \033[0m######" | |||||
| echo -e "######################################################################" | |||||
| echo | |||||
| echo -e "Usage: \033[44;37m./<cmd.sh> <Remote ssh ID> <Remote ssh IP>\033[0m" | |||||
| echo -e "Example\t: \033[45;37m$0 ed 127.0.0.1\033[0m" | |||||
| echo; exit 1 | |||||
| fi | |||||
| BAK_Project=JOE | |||||
| WHO=`whoami` | |||||
| HOSTNAME=`hostnamectl | grep "Static hostname" | awk '{print $NF}'` | |||||
| TS=`date +"%Y%m%d-%H%M%S"` | |||||
| # Host Local Backup info setup | |||||
| WORK_Folder=/ED/$BAK_Project/Script_$BAK_Project | |||||
| Source_BAK_Folder=/ED/$BAK_Project/Backup_file | |||||
| BAK_1=$Source_BAK_Folder/backup-mysql-$BAK_Project.gz | |||||
| BAK_2=$Source_BAK_Folder/Script_$BAK_Project.tar | |||||
| BAK_3=$Source_BAK_Folder/Source_Files_$BAK_Project.tar | |||||
| # Remote ssh Backup info setup | |||||
| PW_File=/home/$WHO/PW/Remote_ssh.info | |||||
| ID=$1 | |||||
| IP=$2 | |||||
| Remote_BAK_Folder_BAK_Disk_X=/BAK_Disk_A/$HOSTNAME/$BAK_Project/Backup_file | |||||
| Remote_BAK_Folder_BAK_Disk_Y=/BAK_Disk_B/$HOSTNAME/$BAK_Project/Backup_file | |||||
| REMOTE_X_BAK_1=$Remote_BAK_Folder_BAK_Disk_X/backup-mysql-$BAK_Project-$TS.gz | |||||
| REMOTE_X_BAK_2=$Remote_BAK_Folder_BAK_Disk_X/Script_$BAK_Project-$TS.tar | |||||
| REMOTE_X_BAK_3=$Remote_BAK_Folder_BAK_Disk_X/Source_Files_$BAK_Project-$TS.tar | |||||
| REMOTE_Y_BAK_1=$Remote_BAK_Folder_BAK_Disk_Y/backup-mysql-$BAK_Project-$TS.gz | |||||
| REMOTE_Y_BAK_2=$Remote_BAK_Folder_BAK_Disk_Y/Script_$BAK_Project-$TS.tar | |||||
| REMOTE_Y_BAK_3=$Remote_BAK_Folder_BAK_Disk_Y/Source_Files_$BAK_Project-$TS.tar | |||||
| ##### Func | |||||
| CHK_WORK_Folder (){ | |||||
| echo -e "\033[32mCheck Work Folder ($WORK_Folder) \033[0m" | |||||
| ls $WORK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[31mFail. Exit.\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_SRC_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck local Backup source folder ($Source_BAK_Folder) \033[0m" | |||||
| ls $Source_BAK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[31mFail. Exit.\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_PW_File (){ | |||||
| echo -e "\033[32mCheck PW file ($PW_File) \033[0m" | |||||
| ls $PW_File > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| SSH_ID=`cat $PW_File | grep ID | awk '{print $NF}'` | |||||
| if [[ $SSH_ID != "" ]]; then | |||||
| echo -e " - \033[34mSSH ID: Good \033[0m" | |||||
| else | |||||
| echo -e " - \033[31mSSH ID: Bad. ID is empty\033[0m" | |||||
| fi | |||||
| SSH_PW=`cat $PW_File | grep PW | awk '{print $NF}'` | |||||
| if [[ $SSH_PW != "" ]]; then | |||||
| echo -e " - \033[34mSSH PW: Good \033[0m" | |||||
| else | |||||
| echo -e " - \033[31mSSH PW: Bad. ID is empty\033[0m" | |||||
| fi | |||||
| else | |||||
| echo -e " \033[31mFail. There is no PW file ($PW_File). Please make a new one. Exit. \033[0m" | |||||
| echo -e " Example of $PW_File: " | |||||
| echo -e " ID xxxx" | |||||
| echo -e " PW zzzzzzzz" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_REMOTE_IP_AVA (){ | |||||
| echo -e "\033[32mCheck IP ($IP) availiable - ping ($IP) \033[0m" | |||||
| ping -c1 $IP > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[31mFail. There is no ping in IP ($IP). Exit \033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_BAK1 (){ | |||||
| echo -e "\033[32mCheck local Backup file status ($BAK_1) \033[0m" | |||||
| ls $BAK_1 > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[33mWarning! There is no local backup file ($BAK_1).\033[0m" | |||||
| echo | |||||
| fi | |||||
| } | |||||
| CHK_BAK2 (){ | |||||
| echo -e "\033[32mCheck local Backup file status ($BAK_2) \033[0m" | |||||
| ls $BAK_2 > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[33mWarning! There is no local backup file ($BAK_2).\033[0m" | |||||
| echo | |||||
| fi | |||||
| } | |||||
| CHK_BAK3 (){ | |||||
| echo -e "\033[32mCheck local Backup file status ($BAK_3) \033[0m" | |||||
| ls $BAK_2 > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[33mWarning! There is no local backup file ($BAK_3).\033[0m" | |||||
| echo | |||||
| fi | |||||
| } | |||||
| MKDIR_REMOTE_BAK_Folder_BAK_Disk_X (){ | |||||
| echo -e "\033[32mmkdir Remote Backup folder alwyass ($ID@$IP:$Remote_BAK_Folder_BAK_Disk_X) \033[0m" | |||||
| expect -c " | |||||
| spawn ssh $ID@$IP \"mkdir -p $Remote_BAK_Folder_BAK_Disk_X;\" | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| } | |||||
| MKDIR_REMOTE_BAK_Folder_BAK_Disk_Y (){ | |||||
| echo -e "\033[32mmkdir Remote Backup folder alwyass ($ID@$IP:$Remote_BAK_Folder_BAK_Disk_Y) \033[0m" | |||||
| expect -c " | |||||
| spawn ssh $ID@$IP \"mkdir -p $Remote_BAK_Folder_BAK_Disk_Y;\" | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| } | |||||
| SCP_TO_BAK_Disk_X (){ | |||||
| echo -e "\033[32mSCP the backup files to Backup_Disk_X...\033[0m" | |||||
| expect -c " | |||||
| spawn scp $BAK_1 $ID@$IP:$REMOTE_X_BAK_1 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| expect -c " | |||||
| spawn scp $BAK_2 $ID@$IP:$REMOTE_X_BAK_2 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| expect -c " | |||||
| spawn scp $BAK_3 $ID@$IP:$REMOTE_X_BAK_3 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| } | |||||
| SCP_TO_BAK_Disk_Y (){ | |||||
| echo -e "\033[32mSCP the backup files to Backup_Disk_Y...\033[0m" | |||||
| expect -c " | |||||
| spawn scp $BAK_1 $ID@$IP:$REMOTE_Y_BAK_1 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| expect -c " | |||||
| spawn scp $BAK_2 $ID@$IP:$REMOTE_Y_BAK_2 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| expect -c " | |||||
| spawn scp $BAK_3 $ID@$IP:$REMOTE_Y_BAK_3 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| } | |||||
| CHK_WORK_Folder | |||||
| CHK_SRC_BAK_Folder | |||||
| CHK_PW_File | |||||
| CHK_REMOTE_IP_AVA | |||||
| CHK_BAK1 | |||||
| CHK_BAK2 | |||||
| CHK_BAK3 | |||||
| #MKDIR_REMOTE_BAK_Folder_BAK_Disk_X | |||||
| #SCP_TO_BAK_Disk_X | |||||
| #MKDIR_REMOTE_BAK_Folder_BAK_Disk_Y | |||||
| #SCP_TO_BAK_Disk_Y | |||||
| echo | |||||
| echo -e "\033[33mDone \033[0m" | |||||
| echo |
| #!/bin/bash | |||||
| if [ "$#" -ne 2 ]; then | |||||
| echo | |||||
| echo -e "######################################################################" | |||||
| echo -e "######\033[41;37m Wrong paraments input, please refer below usage info !!! \033[0m######" | |||||
| echo -e "######################################################################" | |||||
| echo | |||||
| echo -e "Usage: \033[44;37m./<cmd.sh> <Remote ssh ID> <Remote ssh IP>\033[0m" | |||||
| echo -e "Example\t: \033[45;37m$0 ed 127.0.0.1\033[0m" | |||||
| echo; exit 1 | |||||
| fi | |||||
| BAK_Project=JOE | |||||
| WHO=`whoami` | |||||
| HOSTNAME=`hostnamectl | grep "Static hostname" | awk '{print $NF}'` | |||||
| TS=`date +"%Y%m%d-%H%M%S"` | |||||
| # Host Local Backup info setup | |||||
| WORK_Folder=/ED/$BAK_Project/Script_$BAK_Project | |||||
| Source_BAK_Folder=/ED/$BAK_Project/Backup_file | |||||
| BAK_1=$Source_BAK_Folder/backup-mysql-$BAK_Project.gz | |||||
| BAK_2=$Source_BAK_Folder/Script_$BAK_Project.tar | |||||
| BAK_3=$Source_BAK_Folder/Source_Files_$BAK_Project.tar | |||||
| # Remote ssh Backup info setup | |||||
| PW_File=/home/$WHO/PW/Remote_ssh.info | |||||
| ID=$1 | |||||
| IP=$2 | |||||
| Remote_BAK_Folder_BAK_Disk_X=/BAK_Disk_A/$HOSTNAME/$BAK_Project/Backup_file | |||||
| Remote_BAK_Folder_BAK_Disk_Y=/BAK_Disk_B/$HOSTNAME/$BAK_Project/Backup_file | |||||
| REMOTE_X_BAK_1=$Remote_BAK_Folder_BAK_Disk_X/backup-mysql-$BAK_Project-$TS.gz | |||||
| REMOTE_X_BAK_2=$Remote_BAK_Folder_BAK_Disk_X/Script_$BAK_Project-$TS.tar | |||||
| REMOTE_X_BAK_3=$Remote_BAK_Folder_BAK_Disk_X/Source_Files_$BAK_Project-$TS.tar | |||||
| REMOTE_Y_BAK_1=$Remote_BAK_Folder_BAK_Disk_Y/backup-mysql-$BAK_Project-$TS.gz | |||||
| REMOTE_Y_BAK_2=$Remote_BAK_Folder_BAK_Disk_Y/Script_$BAK_Project-$TS.tar | |||||
| REMOTE_Y_BAK_3=$Remote_BAK_Folder_BAK_Disk_Y/Source_Files_$BAK_Project-$TS.tar | |||||
| ##### Func | |||||
| CHK_WORK_Folder (){ | |||||
| echo -e "\033[32mCheck Work Folder ($WORK_Folder) \033[0m" | |||||
| ls $WORK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[31mFail. Exit.\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_SRC_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck local Backup source folder ($Source_BAK_Folder) \033[0m" | |||||
| ls $Source_BAK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[31mFail. Exit.\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_PW_File (){ | |||||
| echo -e "\033[32mCheck PW file ($PW_File) \033[0m" | |||||
| ls $PW_File > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| SSH_ID=`cat $PW_File | grep ID | awk '{print $NF}'` | |||||
| if [[ $SSH_ID != "" ]]; then | |||||
| echo -e " - \033[34mSSH ID: Good \033[0m" | |||||
| else | |||||
| echo -e " - \033[31mSSH ID: Bad. ID is empty\033[0m" | |||||
| fi | |||||
| SSH_PW=`cat $PW_File | grep PW | awk '{print $NF}'` | |||||
| if [[ $SSH_PW != "" ]]; then | |||||
| echo -e " - \033[34mSSH PW: Good \033[0m" | |||||
| else | |||||
| echo -e " - \033[31mSSH PW: Bad. ID is empty\033[0m" | |||||
| fi | |||||
| else | |||||
| echo -e " \033[31mFail. There is no PW file ($PW_File). Please make a new one. Exit. \033[0m" | |||||
| echo -e " Example of $PW_File: " | |||||
| echo -e " ID xxxx" | |||||
| echo -e " PW zzzzzzzz" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_REMOTE_IP_AVA (){ | |||||
| echo -e "\033[32mCheck IP ($IP) availiable - ping ($IP) \033[0m" | |||||
| ping -c1 $IP > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[31mFail. There is no ping in IP ($IP). Exit \033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_BAK1 (){ | |||||
| echo -e "\033[32mCheck local Backup file status ($BAK_1) \033[0m" | |||||
| ls $BAK_1 > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[33mWarning! There is no local backup file ($BAK_1).\033[0m" | |||||
| echo | |||||
| fi | |||||
| } | |||||
| CHK_BAK2 (){ | |||||
| echo -e "\033[32mCheck local Backup file status ($BAK_2) \033[0m" | |||||
| ls $BAK_2 > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[33mWarning! There is no local backup file ($BAK_2).\033[0m" | |||||
| echo | |||||
| fi | |||||
| } | |||||
| CHK_BAK3 (){ | |||||
| echo -e "\033[32mCheck local Backup file status ($BAK_3) \033[0m" | |||||
| ls $BAK_2 > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " \033[34mPass. \033[0m" | |||||
| else | |||||
| echo -e " \033[33mWarning! There is no local backup file ($BAK_3).\033[0m" | |||||
| echo | |||||
| fi | |||||
| } | |||||
| MKDIR_REMOTE_BAK_Folder_BAK_Disk_X (){ | |||||
| echo -e "\033[32mmkdir Remote Backup folder alwyass ($ID@$IP:$Remote_BAK_Folder_BAK_Disk_X) \033[0m" | |||||
| expect -c " | |||||
| spawn ssh $ID@$IP \"mkdir -p $Remote_BAK_Folder_BAK_Disk_X;\" | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| } | |||||
| MKDIR_REMOTE_BAK_Folder_BAK_Disk_Y (){ | |||||
| echo -e "\033[32mmkdir Remote Backup folder alwyass ($ID@$IP:$Remote_BAK_Folder_BAK_Disk_Y) \033[0m" | |||||
| expect -c " | |||||
| spawn ssh $ID@$IP \"mkdir -p $Remote_BAK_Folder_BAK_Disk_Y;\" | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| } | |||||
| SCP_TO_BAK_Disk_X (){ | |||||
| echo -e "\033[32mSCP the backup files to Backup_Disk_X...\033[0m" | |||||
| expect -c " | |||||
| spawn scp $BAK_1 $ID@$IP:$REMOTE_X_BAK_1 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| expect -c " | |||||
| spawn scp $BAK_2 $ID@$IP:$REMOTE_X_BAK_2 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| expect -c " | |||||
| spawn scp $BAK_3 $ID@$IP:$REMOTE_X_BAK_3 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| } | |||||
| SCP_TO_BAK_Disk_Y (){ | |||||
| echo -e "\033[32mSCP the backup files to Backup_Disk_Y...\033[0m" | |||||
| expect -c " | |||||
| spawn scp $BAK_1 $ID@$IP:$REMOTE_Y_BAK_1 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| expect -c " | |||||
| spawn scp $BAK_2 $ID@$IP:$REMOTE_Y_BAK_2 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| expect -c " | |||||
| spawn scp $BAK_3 $ID@$IP:$REMOTE_Y_BAK_3 | |||||
| expect { | |||||
| \"*assword\" {set timeout 300; send \"$SSH_PW\r\";} | |||||
| \"yes/no\" {send \"yes\r\"; } | |||||
| } | |||||
| expect eof" | |||||
| } | |||||
| CHK_WORK_Folder | |||||
| CHK_SRC_BAK_Folder | |||||
| CHK_PW_File | |||||
| CHK_REMOTE_IP_AVA | |||||
| CHK_BAK1 | |||||
| CHK_BAK2 | |||||
| CHK_BAK3 | |||||
| #MKDIR_REMOTE_BAK_Folder_BAK_Disk_X | |||||
| #SCP_TO_BAK_Disk_X | |||||
| #MKDIR_REMOTE_BAK_Folder_BAK_Disk_Y | |||||
| #SCP_TO_BAK_Disk_Y | |||||
| echo | |||||
| echo -e "\033[33mDone \033[0m" | |||||
| echo |
| #!/bin/bash | #!/bin/bash | ||||
| BAK_Project=JOE | |||||
| USER=`whoami` | USER=`whoami` | ||||
| LOG_Folder="_LOG" | LOG_Folder="_LOG" | ||||
| LOG1=/ED/JOE/Script_JOE/_LOG/JOEbackup-Script_JOE.log | |||||
| LOG1=/ED/$BAK_Project/Script_$BAK_Project/_LOG/${BAK_Project}backup-Script_${BAK_Project}.log | |||||
| TS=`date +"%Y%m%d-%H%M%S"` | TS=`date +"%Y%m%d-%H%M%S"` | ||||
| Bak_Folder="/ED/JOE/Backup_file" | |||||
| Bak_File_Name=$Bak_Folder/Script_JOE.tar | |||||
| Bak_File_Name_TS=$Bak_Folder/Script_JOE-$TS.tar | |||||
| Bak_Folder="/ED/${BAK_Project}/Backup_file" | |||||
| Bak_File_Name=$Bak_Folder/Script_${BAK_Project}.tar | |||||
| Bak_File_Name_TS=$Bak_Folder/Script_${BAK_Project}-$TS.tar | |||||
| BAK_Disk_A_Mount_Point="/BAK_Disk_A" | BAK_Disk_A_Mount_Point="/BAK_Disk_A" | ||||
| BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | ||||
| BAK_Disk_A_JOE_Script_BAK_Folder="$BAK_Disk_A_Hostname_Folder/JOE/Backup_file" | |||||
| BAK_Disk_A_JOE_Script_Bak_File_Name_TS="$BAK_Disk_A_JOE_Script_BAK_Folder/Script_JOE-$TS.gz" | |||||
| BAK_Disk_A_Script_BAK_Folder="$BAK_Disk_A_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_A_Script_Bak_File_Name_TS="$BAK_Disk_A_Script_BAK_Folder/Script_${BAK_Project}-$TS.tar" | |||||
| BAK_Disk_B_Mount_Point="/BAK_Disk_B" | |||||
| BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | |||||
| BAK_Disk_B_Script_BAK_Folder="$BAK_Disk_B_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_B_Script_Bak_File_Name_TS="$BAK_Disk_B_Script_BAK_Folder/Script_${BAK_Project}-$TS.tar" | |||||
| Target_Folder=/ED/JOE/Script_JOE | |||||
| Target_Folder=/ED/${BAK_Project}/Script_${BAK_Project} | |||||
| ##### Func | ##### Func | ||||
| CHK_LOG_Folder (){ | CHK_LOG_Folder (){ | ||||
| ls /ED/JOE/Script_JOE/_LOG > /dev/null 2>&1 | |||||
| ls /ED/${BAK_Project}/Script_${BAK_Project}/_LOG > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| sudo mkdir -p /ED/JOE/Script_JOE/_LOG | |||||
| sudo chown $USER:$USER /ED/JOE/Script_JOE/_LOG | |||||
| sudo mkdir -p /ED/${BAK_Project}/Script_${BAK_Project}/_LOG | |||||
| sudo chown $USER:$USER /ED/${BAK_Project}/Script_${BAK_Project}/_LOG | |||||
| fi | fi | ||||
| } | } | ||||
| TAR_File (){ | TAR_File (){ | ||||
| tar cvf $Bak_File_Name $Target_Folder > /dev/null 2>&1 | tar cvf $Bak_File_Name $Target_Folder > /dev/null 2>&1 | ||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e "\033[34mPass. tar Script_JOE file OK.\033[0m" | |||||
| echo -e "\033[34mPass. tar Script_${BAK_Project} file OK.\033[0m" | |||||
| cp $Bak_File_Name $Bak_File_Name_TS | cp $Bak_File_Name $Bak_File_Name_TS | ||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e "\033[34mPass. Make a copy file to \"$Bak_Folder\". Finished!\033[0m" | echo -e "\033[34mPass. Make a copy file to \"$Bak_Folder\". Finished!\033[0m" | ||||
| echo -e "\033[41;37mFail. Make a copy file to \"$Bak_Folder\" failed.\033[0m" | echo -e "\033[41;37mFail. Make a copy file to \"$Bak_Folder\" failed.\033[0m" | ||||
| fi | fi | ||||
| else | else | ||||
| echo -e "\033[41;37mFail. tar Script_JOE file failed.\033[0m" | |||||
| echo -e "\033[41;37mFail. tar Script_${BAK_Project} file failed.\033[0m" | |||||
| fi | fi | ||||
| } | } | ||||
| CP_To_BAK_Disk_A (){ | |||||
| cp $Bak_File_Name $BAK_Disk_A_JOE_Script_Bak_File_Name_TS | |||||
| CP_TO_BAK_Disk_A (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | |||||
| cp $Bak_File_Name $BAK_Disk_A_Script_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e "\033[34mPass. Copied to BAK_Disk_A. \033[0m" | echo -e "\033[34mPass. Copied to BAK_Disk_A. \033[0m" | ||||
| else | else | ||||
| fi | fi | ||||
| } | } | ||||
| CP_TO_BAK_Disk_B (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | |||||
| cp $Bak_File_Name $BAK_Disk_B_Script_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Copied to BAK_Disk_B. \033[0m" | |||||
| else | |||||
| echo -e "\033[41;37mFail. Copied to BAK_Disk_B. \033[0m" | |||||
| fi | |||||
| } | |||||
| echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | ||||
| echo -e "\033[32mStart backup the Script_JOE \033[0m" | tee -a $LOG1 | |||||
| echo -e "\033[32mStart backup the Script_${BAK_Project} \033[0m" | tee -a $LOG1 | |||||
| CHK_LOG_Folder | tee -a $LOG1 | CHK_LOG_Folder | tee -a $LOG1 | ||||
| CHK_Bak_Folder | tee -a $LOG1 | CHK_Bak_Folder | tee -a $LOG1 | ||||
| TAR_File | tee -a $LOG1 | TAR_File | tee -a $LOG1 | ||||
| echo | tee -a $LOG1 | |||||
| CP_TO_BAK_Disk_A | tee -a $LOG1 | |||||
| CP_TO_BAK_Disk_B | tee -a $LOG1 | |||||
| echo -e "\033[32mStart backup the Script_JOE to BAK_Disk_A \033[0m" | tee -a $LOG1 | |||||
| CP_To_BAK_Disk_A | tee -a $LOG1 | |||||
| echo | tee -a $LOG1 | echo | tee -a $LOG1 | ||||
| echo | echo |
| #!/bin/bash | |||||
| BAK_Project=JOE | |||||
| USER=`whoami` | |||||
| LOG_Folder="_LOG" | |||||
| LOG1=/ED/$BAK_Project/Script_$BAK_Project/_LOG/${BAK_Project}backup-Script_${BAK_Project}.log | |||||
| TS=`date +"%Y%m%d-%H%M%S"` | |||||
| Bak_Folder="/ED/${BAK_Project}/Backup_file" | |||||
| Bak_File_Name=$Bak_Folder/Script_${BAK_Project}.tar | |||||
| Bak_File_Name_TS=$Bak_Folder/Script_${BAK_Project}-$TS.tar | |||||
| BAK_Disk_A_Mount_Point="/BAK_Disk_A" | |||||
| BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | |||||
| BAK_Disk_A_Script_BAK_Folder="$BAK_Disk_A_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_A_Script_Bak_File_Name_TS="$BAK_Disk_A_Script_BAK_Folder/Script_${BAK_Project}-$TS.tar" | |||||
| BAK_Disk_B_Mount_Point="/BAK_Disk_B" | |||||
| BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | |||||
| BAK_Disk_B_Script_BAK_Folder="$BAK_Disk_B_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_B_Script_Bak_File_Name_TS="$BAK_Disk_B_Script_BAK_Folder/Script_${BAK_Project}-$TS.tar" | |||||
| Target_Folder=/ED/${BAK_Project}/Script_${BAK_Project} | |||||
| ##### Func | |||||
| CHK_LOG_Folder (){ | |||||
| ls /ED/${BAK_Project}/Script_${BAK_Project}/_LOG > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | |||||
| sudo mkdir -p /ED/${BAK_Project}/Script_${BAK_Project}/_LOG | |||||
| sudo chown $USER:$USER /ED/${BAK_Project}/Script_${BAK_Project}/_LOG | |||||
| fi | |||||
| } | |||||
| CHK_Bak_Folder (){ | |||||
| ls $Bak_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Backup file saving folder: $Bak_Folder exist, go next.\033[0m" | |||||
| else | |||||
| echo -e "\033[31mThere is no Backup file saving folder: $Bak_Folder, next will create a new one automatically.\033[0m" | |||||
| sudo mkdir -p $Bak_Folder | |||||
| sudo chown $USER:$USER $Bak_Folder | |||||
| fi | |||||
| } | |||||
| TAR_File (){ | |||||
| tar cvf $Bak_File_Name $Target_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. tar Script_${BAK_Project} file OK.\033[0m" | |||||
| cp $Bak_File_Name $Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Make a copy file to \"$Bak_Folder\". Finished!\033[0m" | |||||
| else | |||||
| echo -e "\033[41;37mFail. Make a copy file to \"$Bak_Folder\" failed.\033[0m" | |||||
| fi | |||||
| else | |||||
| echo -e "\033[41;37mFail. tar Script_${BAK_Project} file failed.\033[0m" | |||||
| fi | |||||
| } | |||||
| CP_TO_BAK_Disk_A (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | |||||
| cp $Bak_File_Name $BAK_Disk_A_Script_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Copied to BAK_Disk_A. \033[0m" | |||||
| else | |||||
| echo -e "\033[41;37mFail. Copied to BAK_Disk_A. \033[0m" | |||||
| fi | |||||
| } | |||||
| CP_TO_BAK_Disk_B (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | |||||
| cp $Bak_File_Name $BAK_Disk_B_Script_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Copied to BAK_Disk_B. \033[0m" | |||||
| else | |||||
| echo -e "\033[41;37mFail. Copied to BAK_Disk_B. \033[0m" | |||||
| fi | |||||
| } | |||||
| echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | |||||
| echo -e "\033[32mStart backup the Script_${BAK_Project} \033[0m" | tee -a $LOG1 | |||||
| CHK_LOG_Folder | tee -a $LOG1 | |||||
| CHK_Bak_Folder | tee -a $LOG1 | |||||
| TAR_File | tee -a $LOG1 | |||||
| #CP_TO_BAK_Disk_A | tee -a $LOG1 | |||||
| #CP_TO_BAK_Disk_B | tee -a $LOG1 | |||||
| echo | tee -a $LOG1 | |||||
| echo | |||||
| echo -e "\033[33mLOG file:" | |||||
| echo -e " $LOG1\033[0m" | |||||
| echo |
| #!/bin/bash | #!/bin/bash | ||||
| BAK_Project=JOE | |||||
| USER=`whoami` | USER=`whoami` | ||||
| LOG_Folder="_LOG" | LOG_Folder="_LOG" | ||||
| LOG1=/ED/JOE/Script_JOE/_LOG/JOEbackup-Source_Files.log | |||||
| LOG1=/ED/${BAK_Project}/Script_${BAK_Project}/_LOG/${BAK_Project}backup-Source_Files.log | |||||
| TS=`date +"%Y%m%d-%H%M%S"` | TS=`date +"%Y%m%d-%H%M%S"` | ||||
| Bak_Folder="/ED/JOE/Backup_file" | |||||
| Bak_File_Name=$Bak_Folder/Source_Files.tar | |||||
| Bak_File_Name_TS=$Bak_Folder/Source_Files-$TS.tar | |||||
| Bak_Folder="/ED/${BAK_Project}/Backup_file" | |||||
| Bak_File_Name=$Bak_Folder/Source_Files_${BAK_Project}.tar | |||||
| Bak_File_Name_TS=$Bak_Folder/Source_Files_${BAK_Project}-$TS.tar | |||||
| BAK_Disk_A_Mount_Point="/BAK_Disk_A" | BAK_Disk_A_Mount_Point="/BAK_Disk_A" | ||||
| BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | ||||
| BAK_Disk_A_JOE_Script_BAK_Folder="$BAK_Disk_A_Hostname_Folder/JOE/Backup_file" | |||||
| BAK_Disk_A_JOE_Script_Bak_File_Name_TS="$BAK_Disk_A_JOE_Script_BAK_Folder/Source_Files-$TS.gz" | |||||
| BAK_Disk_A_Script_BAK_Folder="$BAK_Disk_A_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_A_Script_Bak_File_Name_TS="$BAK_Disk_A_Script_BAK_Folder/Source_Files_${BAK_Project}-$TS.tar" | |||||
| BAK_Disk_B_Mount_Point="/BAK_Disk_B" | |||||
| BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | |||||
| BAK_Disk_B_Script_BAK_Folder="$BAK_Disk_B_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_B_Script_Bak_File_Name_TS="$BAK_Disk_B_Script_BAK_Folder/Source_Files_${BAK_Project}-$TS.tar" | |||||
| Target_Folder=/ED/JOE/Source_Files | |||||
| Target_Folder=/ED/${BAK_Project}/Source_Files | |||||
| ##### Func | ##### Func | ||||
| CHK_LOG_Folder (){ | CHK_LOG_Folder (){ | ||||
| ls /ED/JOE/Script_JOE/_LOG > /dev/null 2>&1 | |||||
| ls /ED/${BAK_Project}/Script_${BAK_Project}/_LOG > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| sudo mkdir -p /ED/JOE/Script_JOE/_LOG | |||||
| sudo chown $USER:$USER /ED/JOE/Script_JOE/_LOG | |||||
| sudo mkdir -p /ED/${BAK_Project}/Script_${BAK_Project}/_LOG | |||||
| sudo chown $USER:$USER /ED/${BAK_Project}/Script_${BAK_Project}/_LOG | |||||
| fi | fi | ||||
| } | } | ||||
| fi | fi | ||||
| } | } | ||||
| CP_To_BAK_Disk_A (){ | |||||
| cp $Bak_File_Name $BAK_Disk_A_JOE_Script_Bak_File_Name_TS | |||||
| CP_TO_BAK_Disk_A (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | |||||
| cp $Bak_File_Name $BAK_Disk_A_Script_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e "\033[34mPass. Copied to BAK_Disk_A. \033[0m" | echo -e "\033[34mPass. Copied to BAK_Disk_A. \033[0m" | ||||
| else | else | ||||
| fi | fi | ||||
| } | } | ||||
| CP_TO_BAK_Disk_B (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | |||||
| cp $Bak_File_Name $BAK_Disk_B_Script_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Copied to BAK_Disk_B. \033[0m" | |||||
| else | |||||
| echo -e "\033[41;37mFail. Copied to BAK_Disk_B. \033[0m" | |||||
| fi | |||||
| } | |||||
| echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | ||||
| echo -e "\033[32mStart backup the JOE Source_Files \033[0m" | tee -a $LOG1 | |||||
| echo -e "\033[32mStart backup the ${BAK_Project} Source_Files \033[0m" | tee -a $LOG1 | |||||
| CHK_LOG_Folder | tee -a $LOG1 | CHK_LOG_Folder | tee -a $LOG1 | ||||
| CHK_Bak_Folder | tee -a $LOG1 | CHK_Bak_Folder | tee -a $LOG1 | ||||
| TAR_File | tee -a $LOG1 | TAR_File | tee -a $LOG1 | ||||
| echo | tee -a $LOG1 | |||||
| CP_TO_BAK_Disk_A | tee -a $LOG1 | |||||
| CP_TO_BAK_Disk_B | tee -a $LOG1 | |||||
| echo -e "\033[32mStart backup the JOE Source_Files to BAK_Disk_A \033[0m" | tee -a $LOG1 | |||||
| CP_To_BAK_Disk_A | tee -a $LOG1 | |||||
| echo | tee -a $LOG1 | echo | tee -a $LOG1 | ||||
| echo | echo |
| #!/bin/bash | |||||
| BAK_Project=JOE | |||||
| USER=`whoami` | |||||
| LOG_Folder="_LOG" | |||||
| LOG1=/ED/${BAK_Project}/Script_${BAK_Project}/_LOG/${BAK_Project}backup-Source_Files.log | |||||
| TS=`date +"%Y%m%d-%H%M%S"` | |||||
| Bak_Folder="/ED/${BAK_Project}/Backup_file" | |||||
| Bak_File_Name=$Bak_Folder/Source_Files_${BAK_Project}.tar | |||||
| Bak_File_Name_TS=$Bak_Folder/Source_Files_${BAK_Project}-$TS.tar | |||||
| BAK_Disk_A_Mount_Point="/BAK_Disk_A" | |||||
| BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | |||||
| BAK_Disk_A_Script_BAK_Folder="$BAK_Disk_A_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_A_Script_Bak_File_Name_TS="$BAK_Disk_A_Script_BAK_Folder/Source_Files_${BAK_Project}-$TS.tar" | |||||
| BAK_Disk_B_Mount_Point="/BAK_Disk_B" | |||||
| BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | |||||
| BAK_Disk_B_Script_BAK_Folder="$BAK_Disk_B_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_B_Script_Bak_File_Name_TS="$BAK_Disk_B_Script_BAK_Folder/Source_Files_${BAK_Project}-$TS.tar" | |||||
| Target_Folder=/ED/${BAK_Project}/Source_Files | |||||
| ##### Func | |||||
| CHK_LOG_Folder (){ | |||||
| ls /ED/${BAK_Project}/Script_${BAK_Project}/_LOG > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | |||||
| sudo mkdir -p /ED/${BAK_Project}/Script_${BAK_Project}/_LOG | |||||
| sudo chown $USER:$USER /ED/${BAK_Project}/Script_${BAK_Project}/_LOG | |||||
| fi | |||||
| } | |||||
| CHK_Bak_Folder (){ | |||||
| ls $Bak_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Backup file saving folder: $Bak_Folder exist, go next.\033[0m" | |||||
| else | |||||
| echo -e "\033[31mThere is no Backup file saving folder: $Bak_Folder, next will create a new one automatically.\033[0m" | |||||
| sudo mkdir -p $Bak_Folder | |||||
| sudo chown $USER:$USER $Bak_Folder | |||||
| fi | |||||
| } | |||||
| TAR_File (){ | |||||
| tar cvf $Bak_File_Name $Target_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. tar Source_Files file OK.\033[0m" | |||||
| cp $Bak_File_Name $Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Make a copy file to \"$Bak_Folder\". Finished!\033[0m" | |||||
| else | |||||
| echo -e "\033[41;37mFail. Make a copy file to \"$Bak_Folder\" failed.\033[0m" | |||||
| fi | |||||
| else | |||||
| echo -e "\033[41;37mFail. tar Source_Files file failed.\033[0m" | |||||
| fi | |||||
| } | |||||
| CP_TO_BAK_Disk_A (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | |||||
| cp $Bak_File_Name $BAK_Disk_A_Script_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Copied to BAK_Disk_A. \033[0m" | |||||
| else | |||||
| echo -e "\033[31mFail. Copied to BAK_Disk_A. \033[0m" | |||||
| fi | |||||
| } | |||||
| CP_TO_BAK_Disk_B (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | |||||
| cp $Bak_File_Name $BAK_Disk_B_Script_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[34mPass. Copied to BAK_Disk_B. \033[0m" | |||||
| else | |||||
| echo -e "\033[41;37mFail. Copied to BAK_Disk_B. \033[0m" | |||||
| fi | |||||
| } | |||||
| echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | |||||
| echo -e "\033[32mStart backup the ${BAK_Project} Source_Files \033[0m" | tee -a $LOG1 | |||||
| CHK_LOG_Folder | tee -a $LOG1 | |||||
| CHK_Bak_Folder | tee -a $LOG1 | |||||
| TAR_File | tee -a $LOG1 | |||||
| #CP_TO_BAK_Disk_A | tee -a $LOG1 | |||||
| #CP_TO_BAK_Disk_B | tee -a $LOG1 | |||||
| echo | tee -a $LOG1 | |||||
| echo | |||||
| echo -e "\033[33mLOG file:" | |||||
| echo -e " $LOG1\033[0m" | |||||
| echo |
| #!/bin/bash | #!/bin/bash | ||||
| BAK_Project=JOE | |||||
| USER=`whoami` | USER=`whoami` | ||||
| PWFile="/home/$USER/PW/mysql_JOE.info" | |||||
| PWFile="/home/$USER/PW/mysql_${BAK_Project}.info" | |||||
| DATABASEName="`cat $PWFile | grep Database_Name: | awk '{print $NF}'`" | DATABASEName="`cat $PWFile | grep Database_Name: | awk '{print $NF}'`" | ||||
| DATABASEUser="`cat $PWFile | grep ID: | awk '{print $NF}'`" | DATABASEUser="`cat $PWFile | grep ID: | awk '{print $NF}'`" | ||||
| DATABASEPassword="`cat $PWFile | grep Password: | awk '{print $NF}'`" | DATABASEPassword="`cat $PWFile | grep Password: | awk '{print $NF}'`" | ||||
| TS=`date +"%Y%m%d-%H%M%S"` | TS=`date +"%Y%m%d-%H%M%S"` | ||||
| LOG_Folder="/ED/JOE/Script_JOE/_LOG" | |||||
| LOG1=/ED/JOE/Script_JOE/_LOG/JOEbackup-mysql-Auto.log | |||||
| LOG_Folder="/ED/${BAK_Project}/Script_${BAK_Project}/_LOG" | |||||
| LOG1=/ED/${BAK_Project}/Script_${BAK_Project}/_LOG/${BAK_Project}backup-mysql-Auto.log | |||||
| JOE_Bak_Folder="/ED/JOE/Backup_file" | |||||
| JOE_Bak_File_Name=$JOE_Bak_Folder/backup-mysql-JOE.gz | |||||
| JOE_Bak_File_Name_TS=$JOE_Bak_Folder/backup-mysql-JOE-$TS.gz | |||||
| Bak_Folder="/ED/${BAK_Project}/Backup_file" | |||||
| Bak_File_Name=$Bak_Folder/backup-mysql-${BAK_Project}.gz | |||||
| Bak_File_Name_TS=$Bak_Folder/backup-mysql-${BAK_Project}-$TS.gz | |||||
| BAK_Disk_A=/dev/sdb | BAK_Disk_A=/dev/sdb | ||||
| BAK_Disk_A_Mount_Point="/BAK_Disk_A" | BAK_Disk_A_Mount_Point="/BAK_Disk_A" | ||||
| BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | ||||
| BAK_Disk_A_JOE_BAK_Folder="$BAK_Disk_A_Hostname_Folder/JOE/Backup_file" | |||||
| BAK_Disk_A_JOE_Bak_File_Name_TS="$BAK_Disk_A_JOE_BAK_Folder/backup-mysql-JOE-$TS.gz" | |||||
| BAK_Disk_A_BAK_Folder="$BAK_Disk_A_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_A_Bak_File_Name_TS="$BAK_Disk_A_BAK_Folder/backup-mysql-${BAK_Project}-$TS.gz" | |||||
| BAK_Disk_B=/dev/sda | BAK_Disk_B=/dev/sda | ||||
| BAK_Disk_B_Mount_Point="/BAK_Disk_B" | BAK_Disk_B_Mount_Point="/BAK_Disk_B" | ||||
| BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | ||||
| BAK_Disk_B_JOE_BAK_Folder="$BAK_Disk_B_Hostname_Folder/JOE/Backup_file" | |||||
| BAK_Disk_B_JOE_Bak_File_Name_TS="$BAK_Disk_B_JOE_BAK_Folder/backup-mysql-JOE-$TS.gz" | |||||
| BAK_Disk_B_BAK_Folder="$BAK_Disk_B_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_B_Bak_File_Name_TS="$BAK_Disk_B_BAK_Folder/backup-mysql-${BAK_Project}-$TS.gz" | |||||
| ##### FUNC | ##### FUNC | ||||
| echo -e " >> \033[31mFail. $PWFile didn't exist. Please create one. Exit\033[0m" | tee -a $LOG1 | echo -e " >> \033[31mFail. $PWFile didn't exist. Please create one. Exit\033[0m" | tee -a $LOG1 | ||||
| echo | echo | ||||
| echo -e "$PWFile Content example: " | echo -e "$PWFile Content example: " | ||||
| echo -e "Database_Name: db_joe_" | |||||
| echo -e "Database_Name: db_ed8_" | |||||
| echo -e "ID: ed" | echo -e "ID: ed" | ||||
| echo -e "Password: +039*******" | echo -e "Password: +039*******" | ||||
| echo | echo | ||||
| fi | fi | ||||
| } | } | ||||
| CHK_JOE_Bak_Folder (){ | |||||
| echo -e "\033[32mCheck the local original backup folder exist: \033[35m($JOE_Bak_Folder) \033[0m" | |||||
| ls $JOE_Bak_Folder > /dev/null 2>&1 | |||||
| CHK_Bak_Folder (){ | |||||
| echo -e "\033[32mCheck the local original backup folder exist: \033[35m($Bak_Folder) \033[0m" | |||||
| ls $Bak_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. Backup file saving folder: $JOE_Bak_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. Backup file saving folder: $Bak_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[33mWarning! There is no Backup file saving folder: $JOE_Bak_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $JOE_Bak_Folder | |||||
| sudo chown $USER:$USER $JOE_Bak_Folder -R | |||||
| echo -e " >> \033[33mWarning! There is no Backup file saving folder: $Bak_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $Bak_Folder | |||||
| sudo chown $USER:$USER $Bak_Folder -R | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | ||||
| echo | echo | ||||
| echo -e "\033[32mStarting mysqldump...\033[0m" | echo -e "\033[32mStarting mysqldump...\033[0m" | ||||
| echo -e "\033[45;37m==========================================================================================\033[0m" | tee -a $LOG1 | echo -e "\033[45;37m==========================================================================================\033[0m" | tee -a $LOG1 | ||||
| echo -e "\033[41;37m Important! Please check below messages for making sure mysqldump be performed exactly. \033[0m" | tee -a $LOG1 | echo -e "\033[41;37m Important! Please check below messages for making sure mysqldump be performed exactly. \033[0m" | tee -a $LOG1 | ||||
| mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $JOE_Bak_File_Name | |||||
| # mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $JOE_Bak_File_Name | |||||
| mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $Bak_File_Name | |||||
| # mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $Bak_File_Name | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. mysql dump w/ gzip OK. \033[0m" | tee -a $LOG1 | echo -e " >> \033[34mPass. mysql dump w/ gzip OK. \033[0m" | tee -a $LOG1 | ||||
| else | else | ||||
| echo -e " >> \033[41;37m Fail. mysql dump w/ gzip failed. Exit \033[0m" | tee -a $LOG1 | echo -e " >> \033[41;37m Fail. mysql dump w/ gzip failed. Exit \033[0m" | tee -a $LOG1 | ||||
| echo -e " >> \033[31m If you got error message, please try to perform below command for debugging\033[0m" | tee -a $LOG1 | echo -e " >> \033[31m If you got error message, please try to perform below command for debugging\033[0m" | tee -a $LOG1 | ||||
| echo -e " >> \033[31m # sudo mysqldump -u ed -p db_ed8_ | gzip > $JOE_Bak_File_Name \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[31m # sudo mysqldump -u ed -p db_ed8_ | gzip > $Bak_File_Name \033[0m" | tee -a $LOG1 | |||||
| echo | echo | ||||
| exit | exit | ||||
| fi | fi | ||||
| echo -e "\033[45;37m==========================================================================================\033[0m" | echo -e "\033[45;37m==========================================================================================\033[0m" | ||||
| echo -e "\033[32mStarting make a copy with timastamp filename...\033[0m" | tee -a $LOG1 | echo -e "\033[32mStarting make a copy with timastamp filename...\033[0m" | tee -a $LOG1 | ||||
| cp $JOE_Bak_File_Name $JOE_Bak_File_Name_TS | |||||
| cp $Bak_File_Name $Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | echo | ||||
| exit | exit | ||||
| fi | fi | ||||
| fi | fi | ||||
| } | } | ||||
| CHK_BAK_Disk_A_JOE_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A JOE backup folder status: \033[35m($BAK_Disk_A_JOE_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_A_JOE_BAK_Folder > /dev/null 2>&1 | |||||
| CHK_BAK_Disk_A_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A ${BAK_Project} backup folder status: \033[35m($BAK_Disk_A_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_A_BAK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_A_JOE_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_A_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_A_JOE_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_A_JOE_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_A_JOE_BAK_Folder -R | |||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_A_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_A_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_A_BAK_Folder -R | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | ||||
| echo | echo | ||||
| fi | fi | ||||
| } | } | ||||
| CHK_BAK_Disk_B_JOE_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_B JOE backup folder status: \033[35m($BAK_Disk_B_JOE_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_B_JOE_BAK_Folder > /dev/null 2>&1 | |||||
| CHK_BAK_Disk_B_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_B ${BAK_Project} backup folder status: \033[35m($BAK_Disk_B_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_B_BAK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_B_JOE_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_B_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_B_JOE_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_B_JOE_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_B_JOE_BAK_Folder -R | |||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_B_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_B_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_B_BAK_Folder -R | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | ||||
| CP_TO_BAK_Disk_A (){ | CP_TO_BAK_Disk_A (){ | ||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | ||||
| cp $JOE_Bak_File_Name_TS $BAK_Disk_A_JOE_Bak_File_Name_TS | |||||
| cp $Bak_File_Name_TS $BAK_Disk_A_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_A_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_A_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_A_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_A_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | echo | ||||
| echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | ||||
| echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_A_Mount_Point) with sudo \033[0m" | echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_A_Mount_Point) with sudo \033[0m" | ||||
| CP_TO_BAK_Disk_B (){ | CP_TO_BAK_Disk_B (){ | ||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | ||||
| cp $JOE_Bak_File_Name_TS $BAK_Disk_B_JOE_Bak_File_Name_TS | |||||
| cp $Bak_File_Name_TS $BAK_Disk_B_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_B_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_B_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_B_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_B_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | echo | ||||
| echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | ||||
| echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_B_Mount_Point) with sudo \033[0m" | echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_B_Mount_Point) with sudo \033[0m" | ||||
| echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | ||||
| CHK_PWFile | CHK_PWFile | ||||
| CHK_LOG_Folder | CHK_LOG_Folder | ||||
| CHK_JOE_Bak_Folder | |||||
| CHK_Bak_Folder | |||||
| Mysql_Dump | Mysql_Dump | ||||
| CHK_BAK_Disk_A | CHK_BAK_Disk_A | ||||
| CHK_BAK_Disk_A_Mount_Point | CHK_BAK_Disk_A_Mount_Point | ||||
| CHK_BAK_Disk_A_Mount_Status | CHK_BAK_Disk_A_Mount_Status | ||||
| CHK_BAK_Disk_A_Hostname_Folder | CHK_BAK_Disk_A_Hostname_Folder | ||||
| CHK_BAK_Disk_A_JOE_BAK_Folder | |||||
| CHK_BAK_Disk_A_BAK_Folder | |||||
| CP_TO_BAK_Disk_A | CP_TO_BAK_Disk_A | ||||
| CHK_BAK_Disk_B | CHK_BAK_Disk_B | ||||
| CHK_BAK_Disk_B_Mount_Point | CHK_BAK_Disk_B_Mount_Point | ||||
| CHK_BAK_Disk_B_Mount_Status | CHK_BAK_Disk_B_Mount_Status | ||||
| CHK_BAK_Disk_B_Hostname_Folder | CHK_BAK_Disk_B_Hostname_Folder | ||||
| CHK_BAK_Disk_B_JOE_BAK_Folder | |||||
| CHK_BAK_Disk_B_BAK_Folder | |||||
| CP_TO_BAK_Disk_B | CP_TO_BAK_Disk_B | ||||
| #!/bin/bash | #!/bin/bash | ||||
| BAK_Project=JOE | |||||
| USER=`whoami` | USER=`whoami` | ||||
| PWFile="/home/$USER/PW/mysql_JOE.info" | |||||
| PWFile="/home/$USER/PW/mysql_${BAK_Project}.info" | |||||
| DATABASEName="`cat $PWFile | grep Database_Name: | awk '{print $NF}'`" | DATABASEName="`cat $PWFile | grep Database_Name: | awk '{print $NF}'`" | ||||
| DATABASEUser="`cat $PWFile | grep ID: | awk '{print $NF}'`" | DATABASEUser="`cat $PWFile | grep ID: | awk '{print $NF}'`" | ||||
| DATABASEPassword="`cat $PWFile | grep Password: | awk '{print $NF}'`" | DATABASEPassword="`cat $PWFile | grep Password: | awk '{print $NF}'`" | ||||
| TS=`date +"%Y%m%d-%H%M%S"` | TS=`date +"%Y%m%d-%H%M%S"` | ||||
| LOG_Folder="/ED/JOE/Script_JOE/_LOG" | |||||
| LOG1=/ED/JOE/Script_JOE/_LOG/JOEbackup-mysql-Auto.log | |||||
| LOG_Folder="/ED/${BAK_Project}/Script_${BAK_Project}/_LOG" | |||||
| LOG1=/ED/${BAK_Project}/Script_${BAK_Project}/_LOG/${BAK_Project}backup-mysql-Auto.log | |||||
| JOE_Bak_Folder="/ED/JOE/Backup_file" | |||||
| JOE_Bak_File_Name=$JOE_Bak_Folder/backup-mysql-JOE.gz | |||||
| JOE_Bak_File_Name_TS=$JOE_Bak_Folder/backup-mysql-JOE-$TS.gz | |||||
| Bak_Folder="/ED/${BAK_Project}/Backup_file" | |||||
| Bak_File_Name=$Bak_Folder/backup-mysql-${BAK_Project}.gz | |||||
| Bak_File_Name_TS=$Bak_Folder/backup-mysql-${BAK_Project}-$TS.gz | |||||
| BAK_Disk_A=/dev/sdb | BAK_Disk_A=/dev/sdb | ||||
| BAK_Disk_A_Mount_Point="/BAK_Disk_A" | BAK_Disk_A_Mount_Point="/BAK_Disk_A" | ||||
| BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | ||||
| BAK_Disk_A_JOE_BAK_Folder="$BAK_Disk_A_Hostname_Folder/JOE/Backup_file" | |||||
| BAK_Disk_A_JOE_Bak_File_Name_TS="$BAK_Disk_A_JOE_BAK_Folder/backup-mysql-JOE-$TS.gz" | |||||
| BAK_Disk_A_BAK_Folder="$BAK_Disk_A_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_A_Bak_File_Name_TS="$BAK_Disk_A_BAK_Folder/backup-mysql-${BAK_Project}-$TS.gz" | |||||
| BAK_Disk_B=/dev/sda | BAK_Disk_B=/dev/sda | ||||
| BAK_Disk_B_Mount_Point="/BAK_Disk_B" | BAK_Disk_B_Mount_Point="/BAK_Disk_B" | ||||
| BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | ||||
| BAK_Disk_B_JOE_BAK_Folder="$BAK_Disk_B_Hostname_Folder/JOE/Backup_file" | |||||
| BAK_Disk_B_JOE_Bak_File_Name_TS="$BAK_Disk_B_JOE_BAK_Folder/backup-mysql-JOE-$TS.gz" | |||||
| BAK_Disk_B_BAK_Folder="$BAK_Disk_B_Hostname_Folder/${BAK_Project}/Backup_file" | |||||
| BAK_Disk_B_Bak_File_Name_TS="$BAK_Disk_B_BAK_Folder/backup-mysql-${BAK_Project}-$TS.gz" | |||||
| ##### FUNC | ##### FUNC | ||||
| echo -e " >> \033[31mFail. $PWFile didn't exist. Please create one. Exit\033[0m" | tee -a $LOG1 | echo -e " >> \033[31mFail. $PWFile didn't exist. Please create one. Exit\033[0m" | tee -a $LOG1 | ||||
| echo | echo | ||||
| echo -e "$PWFile Content example: " | echo -e "$PWFile Content example: " | ||||
| echo -e "Database_Name: db_joe_" | |||||
| echo -e "Database_Name: db_ed8_" | |||||
| echo -e "ID: ed" | echo -e "ID: ed" | ||||
| echo -e "Password: +039*******" | echo -e "Password: +039*******" | ||||
| echo | echo | ||||
| fi | fi | ||||
| } | } | ||||
| CHK_JOE_Bak_Folder (){ | |||||
| echo -e "\033[32mCheck the local original backup folder exist: \033[35m($JOE_Bak_Folder) \033[0m" | |||||
| ls $JOE_Bak_Folder > /dev/null 2>&1 | |||||
| CHK_Bak_Folder (){ | |||||
| echo -e "\033[32mCheck the local original backup folder exist: \033[35m($Bak_Folder) \033[0m" | |||||
| ls $Bak_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. Backup file saving folder: $JOE_Bak_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. Backup file saving folder: $Bak_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[33mWarning! There is no Backup file saving folder: $JOE_Bak_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $JOE_Bak_Folder | |||||
| sudo chown $USER:$USER $JOE_Bak_Folder -R | |||||
| echo -e " >> \033[33mWarning! There is no Backup file saving folder: $Bak_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $Bak_Folder | |||||
| sudo chown $USER:$USER $Bak_Folder -R | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | ||||
| echo | echo | ||||
| echo -e "\033[32mStarting mysqldump...\033[0m" | echo -e "\033[32mStarting mysqldump...\033[0m" | ||||
| echo -e "\033[45;37m==========================================================================================\033[0m" | tee -a $LOG1 | echo -e "\033[45;37m==========================================================================================\033[0m" | tee -a $LOG1 | ||||
| echo -e "\033[41;37m Important! Please check below messages for making sure mysqldump be performed exactly. \033[0m" | tee -a $LOG1 | echo -e "\033[41;37m Important! Please check below messages for making sure mysqldump be performed exactly. \033[0m" | tee -a $LOG1 | ||||
| /opt/lampp/bin/mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $JOE_Bak_File_Name | |||||
| # mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $JOE_Bak_File_Name | |||||
| /opt/lampp/bin/mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $Bak_File_Name | |||||
| # mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $Bak_File_Name | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. mysql dump w/ gzip OK. \033[0m" | tee -a $LOG1 | echo -e " >> \033[34mPass. mysql dump w/ gzip OK. \033[0m" | tee -a $LOG1 | ||||
| else | else | ||||
| echo -e " >> \033[41;37m Fail. mysql dump w/ gzip failed. Exit \033[0m" | tee -a $LOG1 | echo -e " >> \033[41;37m Fail. mysql dump w/ gzip failed. Exit \033[0m" | tee -a $LOG1 | ||||
| echo -e " >> \033[31m If you got error message, please try to perform below command for debugging\033[0m" | tee -a $LOG1 | echo -e " >> \033[31m If you got error message, please try to perform below command for debugging\033[0m" | tee -a $LOG1 | ||||
| echo -e " >> \033[31m # sudo /opt/lampp/bin/mysqldump -u ed -p db_ed8_ | gzip > $JOE_Bak_File_Name \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[31m # sudo /opt/lampp/bin/mysqldump -u ed -p db_ed8_ | gzip > $Bak_File_Name \033[0m" | tee -a $LOG1 | |||||
| echo | echo | ||||
| exit | exit | ||||
| fi | fi | ||||
| echo -e "\033[45;37m==========================================================================================\033[0m" | echo -e "\033[45;37m==========================================================================================\033[0m" | ||||
| echo -e "\033[32mStarting make a copy with timastamp filename...\033[0m" | tee -a $LOG1 | echo -e "\033[32mStarting make a copy with timastamp filename...\033[0m" | tee -a $LOG1 | ||||
| cp $JOE_Bak_File_Name $JOE_Bak_File_Name_TS | |||||
| cp $Bak_File_Name $Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | echo | ||||
| exit | exit | ||||
| fi | fi | ||||
| fi | fi | ||||
| } | } | ||||
| CHK_BAK_Disk_A_JOE_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A JOE backup folder status: \033[35m($BAK_Disk_A_JOE_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_A_JOE_BAK_Folder > /dev/null 2>&1 | |||||
| CHK_BAK_Disk_A_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A ${BAK_Project} backup folder status: \033[35m($BAK_Disk_A_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_A_BAK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_A_JOE_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_A_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_A_JOE_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_A_JOE_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_A_JOE_BAK_Folder -R | |||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_A_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_A_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_A_BAK_Folder -R | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | ||||
| echo | echo | ||||
| fi | fi | ||||
| } | } | ||||
| CHK_BAK_Disk_B_JOE_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_B JOE backup folder status: \033[35m($BAK_Disk_B_JOE_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_B_JOE_BAK_Folder > /dev/null 2>&1 | |||||
| CHK_BAK_Disk_B_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_B ${BAK_Project} backup folder status: \033[35m($BAK_Disk_B_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_B_BAK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_B_JOE_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_B_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_B_JOE_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_B_JOE_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_B_JOE_BAK_Folder -R | |||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_B_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_B_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_B_BAK_Folder -R | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | ||||
| CP_TO_BAK_Disk_A (){ | CP_TO_BAK_Disk_A (){ | ||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | ||||
| cp $JOE_Bak_File_Name_TS $BAK_Disk_A_JOE_Bak_File_Name_TS | |||||
| cp $Bak_File_Name_TS $BAK_Disk_A_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_A_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_A_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_A_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_A_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | echo | ||||
| echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | ||||
| echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_A_Mount_Point) with sudo \033[0m" | echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_A_Mount_Point) with sudo \033[0m" | ||||
| CP_TO_BAK_Disk_B (){ | CP_TO_BAK_Disk_B (){ | ||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | ||||
| cp $JOE_Bak_File_Name_TS $BAK_Disk_B_JOE_Bak_File_Name_TS | |||||
| cp $Bak_File_Name_TS $BAK_Disk_B_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_B_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_B_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_B_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_B_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | echo | ||||
| echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | ||||
| echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_B_Mount_Point) with sudo \033[0m" | echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_B_Mount_Point) with sudo \033[0m" | ||||
| echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | ||||
| CHK_PWFile | CHK_PWFile | ||||
| CHK_LOG_Folder | CHK_LOG_Folder | ||||
| CHK_JOE_Bak_Folder | |||||
| CHK_Bak_Folder | |||||
| Mysql_Dump | Mysql_Dump | ||||
| #CHK_BAK_Disk_A | #CHK_BAK_Disk_A | ||||
| #CHK_BAK_Disk_A_Mount_Point | #CHK_BAK_Disk_A_Mount_Point | ||||
| #CHK_BAK_Disk_A_Mount_Status | #CHK_BAK_Disk_A_Mount_Status | ||||
| #CHK_BAK_Disk_A_Hostname_Folder | #CHK_BAK_Disk_A_Hostname_Folder | ||||
| #CHK_BAK_Disk_A_JOE_BAK_Folder | |||||
| #CHK_BAK_Disk_A_BAK_Folder | |||||
| #CP_TO_BAK_Disk_A | #CP_TO_BAK_Disk_A | ||||
| #CHK_BAK_Disk_B | #CHK_BAK_Disk_B | ||||
| #CHK_BAK_Disk_B_Mount_Point | #CHK_BAK_Disk_B_Mount_Point | ||||
| #CHK_BAK_Disk_B_Mount_Status | #CHK_BAK_Disk_B_Mount_Status | ||||
| #CHK_BAK_Disk_B_Hostname_Folder | #CHK_BAK_Disk_B_Hostname_Folder | ||||
| #CHK_BAK_Disk_B_JOE_BAK_Folder | |||||
| #CHK_BAK_Disk_B_BAK_Folder | |||||
| #CP_TO_BAK_Disk_B | #CP_TO_BAK_Disk_B | ||||
| #!/bin/bash | |||||
| USER=`whoami` | |||||
| PWFile="/home/$USER/PW/mysql_JOE.info" | |||||
| DATABASEName="`cat $PWFile | grep Database_Name: | awk '{print $NF}'`" | |||||
| DATABASEUser="`cat $PWFile | grep ID: | awk '{print $NF}'`" | |||||
| DATABASEPassword="`cat $PWFile | grep Password: | awk '{print $NF}'`" | |||||
| TS=`date +"%Y%m%d-%H%M%S"` | |||||
| LOG_Folder="/ED/JOE/Script_JOE/_LOG" | |||||
| LOG1=/ED/JOE/Script_JOE/_LOG/JOEbackup-mysql-Auto.log | |||||
| JOE_Bak_Folder="/ED/JOE/Backup_file" | |||||
| JOE_Bak_File_Name=$JOE_Bak_Folder/backup-mysql-JOE.gz | |||||
| JOE_Bak_File_Name_TS=$JOE_Bak_Folder/backup-mysql-JOE-$TS.gz | |||||
| BAK_Disk_A=/dev/sdb | |||||
| BAK_Disk_A_Mount_Point="/BAK_Disk_A" | |||||
| BAK_Disk_A_Hostname_Folder="$BAK_Disk_A_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | |||||
| BAK_Disk_A_JOE_BAK_Folder="$BAK_Disk_A_Hostname_Folder/JOE/Backup_file" | |||||
| BAK_Disk_A_JOE_Bak_File_Name_TS="$BAK_Disk_A_JOE_BAK_Folder/backup-mysql-JOE-$TS.gz" | |||||
| BAK_Disk_B=/dev/sda | |||||
| BAK_Disk_B_Mount_Point="/BAK_Disk_B" | |||||
| BAK_Disk_B_Hostname_Folder="$BAK_Disk_B_Mount_Point/`hostnamectl | grep "Static hostname" | awk '{print $NF}'`" | |||||
| BAK_Disk_B_JOE_BAK_Folder="$BAK_Disk_B_Hostname_Folder/JOE/Backup_file" | |||||
| BAK_Disk_B_JOE_Bak_File_Name_TS="$BAK_Disk_B_JOE_BAK_Folder/backup-mysql-JOE-$TS.gz" | |||||
| ##### FUNC | |||||
| CHK_PWFile (){ | |||||
| echo -e "\033[32mCheck the mysql password info file exist: \033[0m" | |||||
| ls $PWFile > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[31mFail. $PWFile didn't exist. Please create one. Exit\033[0m" | tee -a $LOG1 | |||||
| echo | |||||
| echo -e "$PWFile Content example: " | |||||
| echo -e "Database_Name: db_joe_" | |||||
| echo -e "ID: ed" | |||||
| echo -e "Password: +039*******" | |||||
| echo | |||||
| exit | |||||
| else | |||||
| echo -e " >> \033[34mPass. $PWFile exist.\033[0m" | tee -a $LOG1 | |||||
| echo -e -n " Check context information accuracy (DATABASEName)\t\t: " | |||||
| if [[ $DATABASEName == "" ]]; then | |||||
| echo -e "\033[31mFail. There is no correct info of DATABASEName in $PWFile. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| else | |||||
| echo -e "\033[34mPass. \033[0m" | |||||
| fi | |||||
| echo -e -n " Check context information accuracy (DATABASEUser)\t\t: " | |||||
| if [[ $DATABASEUser == "" ]]; then | |||||
| echo -e "\033[31mFail. There is no correct info of DATABASEUser in $PWFile. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| else | |||||
| echo -e "\033[34mPass. \033[0m" | |||||
| fi | |||||
| echo -e -n " Check context information accuracy (DATABASEPassword)\t: " | |||||
| if [[ $DATABASEPassword == "" ]]; then | |||||
| echo -e "\033[31mFail. There is no correct info of DATABASEPassword in $PWFile. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| else | |||||
| echo -e "\033[34mPass. \033[0m" | |||||
| fi | |||||
| fi | |||||
| } | |||||
| CHK_LOG_Folder (){ | |||||
| echo -e "\033[32mCheck the auto backup log saving folder exist: \033[35m($LOG_Folder) \033[0m" | |||||
| ls $LOG_Folder > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[33mWarning! There is no folder \"$LOG_Folder\". Next will create a new one.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $LOG_Folder | |||||
| sudo chown $USER:$USER $LOG_Folder -R | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| else | |||||
| echo -e " >> \033[34mPass. There is a folder \"$LOG_Folder\". \033[0m" | tee -a $LOG1 | |||||
| fi | |||||
| } | |||||
| CHK_JOE_Bak_Folder (){ | |||||
| echo -e "\033[32mCheck the local original backup folder exist: \033[35m($JOE_Bak_Folder) \033[0m" | |||||
| ls $JOE_Bak_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. Backup file saving folder: $JOE_Bak_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[33mWarning! There is no Backup file saving folder: $JOE_Bak_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $JOE_Bak_Folder | |||||
| sudo chown $USER:$USER $JOE_Bak_Folder -R | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| fi | |||||
| } | |||||
| Mysql_Dump (){ | |||||
| echo -e "\033[32mStarting mysqldump...\033[0m" | |||||
| echo -e "\033[45;37m==========================================================================================\033[0m" | tee -a $LOG1 | |||||
| echo -e "\033[41;37m Important! Please check below messages for making sure mysqldump be performed exactly. \033[0m" | tee -a $LOG1 | |||||
| mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $JOE_Bak_File_Name | |||||
| # mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $JOE_Bak_File_Name | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. mysql dump w/ gzip OK. \033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[41;37m Fail. mysql dump w/ gzip failed. Exit \033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[31m If you got error message, please try to perform below command for debugging\033[0m" | tee -a $LOG1 | |||||
| echo -e " >> \033[31m # sudo mysqldump -u ed -p db_ed8_ | gzip > $JOE_Bak_File_Name \033[0m" | tee -a $LOG1 | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| echo -e "\033[45;37m==========================================================================================\033[0m" | tee -a $LOG1 | |||||
| echo -e " Debug message: " | |||||
| echo -e " \033[32m* mysqldump: Got error: 1045: Access denied for user 'ed'@'localhost' (using password: YES) when trying to connect \033[0m " | |||||
| echo -e " >> Please check the content of $PWFile" | |||||
| echo -e "\033[45;37m==========================================================================================\033[0m" | |||||
| echo -e "\033[32mStarting make a copy with timastamp filename...\033[0m" | tee -a $LOG1 | |||||
| cp $JOE_Bak_File_Name $JOE_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_A (){ | |||||
| echo -e "\033[32mCheck the detection of Backup_Disk_A: \033[35m(lsscsi $BAK_Disk_A) \033[0m" | |||||
| lsscsi | grep $BAK_Disk_A > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. The BAK_Disk_A \"$BAK_Disk_A\" be detected by lsscsi. \033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[41;37mFail. The BAK_Disk_A \"$BAK_Disk_A\" not be detected by lsscsi. Exit \033[0m" | tee -a $LOG1 | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_B (){ | |||||
| echo -e "\033[32mCheck the detection of Backup_Disk_A: \033[35m(lsscsi $BAK_Disk_B) \033[0m" | |||||
| lsscsi | grep $BAK_Disk_B > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. The BAK_Disk_B \"$BAK_Disk_B\" be detected by lsscsi. \033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[41;37mFail. The BAK_Disk_B \"$BAK_Disk_B\" not be detected by lsscsi. Exit \033[0m" | tee -a $LOG1 | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_A_Mount_Point (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A mount point folder exist: \033[35m($BAK_Disk_A_Mount_Point) \033[0m" | |||||
| ls $BAK_Disk_A_Mount_Point > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. The BAK_Disk_A mount point exist \"$BAK_Disk_A_Mount_Point\"\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[33mWarning! The BAK_Disk_A mount point doesn't exist \"$BAK_Disk_A_Mount_Point\"\033[0m, auto create a new one. " | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_A_Mount_Point | |||||
| sudo chown $USER:$USER $BAK_Disk_A_Mount_Point -R | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_B_Mount_Point (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A mount point folder exist: \033[35m($BAK_Disk_B_Mount_Point) \033[0m" | |||||
| ls $BAK_Disk_B_Mount_Point > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. The BAK_Disk_B mount point exist \"$BAK_Disk_B_Mount_Point\"\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[33mWarning! The BAK_Disk_B mount point doesn't exist \"$BAK_Disk_B_Mount_Point\"\033[0m, auto create a new one. " | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_B_Mount_Point | |||||
| sudo chown $USER:$USER $BAK_Disk_B_Mount_Point -R | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_A_Mount_Status (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A mount status: \033[0m" | |||||
| if [[ `df -h | grep $BAK_Disk_A | awk '{print $NF}'` != $BAK_Disk_A_Mount_Point ]]; then | |||||
| echo -e " >> \033[31mFail. The BAK_Disk_A ($BAK_Disk_A) not be mounted at \"$BAK_Disk_A_Mount_Point\". Exit. \033[0m" | tee -a $LOG1 | |||||
| df -h | |||||
| echo | |||||
| exit | |||||
| else | |||||
| echo -e " >> \033[34mPass. The BAK_Disk_A ($BAK_Disk_A) be mounted at \"$BAK_Disk_A_Mount_Point\"\033[0m" | tee -a $LOG1 | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_B_Mount_Status (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_B mount status: \033[0m" | |||||
| if [[ `df -h | grep $BAK_Disk_B | awk '{print $NF}'` != $BAK_Disk_B_Mount_Point ]]; then | |||||
| echo -e " >> \033[31mFail. The BAK_Disk_B ($BAK_Disk_B) not be mounted at \"$BAK_Disk_B_Mount_Point\". Exit. \033[0m" | tee -a $LOG1 | |||||
| df -h | |||||
| echo | |||||
| exit | |||||
| else | |||||
| echo -e " >> \033[34mPass. The BAK_Disk_B ($BAK_Disk_B) be mounted at \"$BAK_Disk_B_Mount_Point\"\033[0m" | tee -a $LOG1 | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_A_Hostname_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A Hostname folder status: \033[35m($BAK_Disk_A_Hostname_Folder) \033[0m" | |||||
| ls $BAK_Disk_A_Hostname_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. BAK_Disk_A Hostname folder: $BAK_Disk_A_Hostname_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[33mWarning! BAK_Disk_A Hostname folder: $BAK_Disk_A_Hostname_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sduo mkdir -p $BAK_Disk_A_Hostname_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_A_Hostname_Folder -R | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_B_Hostname_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_B Hostname folder status: \033[35m($BAK_Disk_B_Hostname_Folder) \033[0m" | |||||
| ls $BAK_Disk_B_Hostname_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. BAK_Disk_B Hostname folder: $BAK_Disk_B_Hostname_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[31mWarning! BAK_Disk_B Hostname folder: $BAK_Disk_B_Hostname_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_B_Hostname_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_B_Hostname_Folder -R | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_A_JOE_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_A JOE backup folder status: \033[35m($BAK_Disk_A_JOE_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_A_JOE_BAK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_A_JOE_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_A_JOE_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_A_JOE_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_A_JOE_BAK_Folder -R | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| fi | |||||
| } | |||||
| CHK_BAK_Disk_B_JOE_BAK_Folder (){ | |||||
| echo -e "\033[32mCheck the BAK_Disk_B JOE backup folder status: \033[35m($BAK_Disk_B_JOE_BAK_Folder) \033[0m" | |||||
| ls $BAK_Disk_B_JOE_BAK_Folder > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_B_JOE_BAK_Folder exist, go next.\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[33mWarning! There is no BAK_Disk's Backup file saving folder: $BAK_Disk_B_JOE_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| sudo mkdir -p $BAK_Disk_B_JOE_BAK_Folder | |||||
| sudo chown $USER:$USER $BAK_Disk_B_JOE_BAK_Folder -R | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e " >> \033[41;37mCreate the folder failed. Exit\033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| fi | |||||
| } | |||||
| CP_TO_BAK_Disk_A (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_A...\033[0m" | |||||
| cp $JOE_Bak_File_Name_TS $BAK_Disk_A_JOE_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_A_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_A_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | |||||
| echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | |||||
| echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_A_Mount_Point) with sudo \033[0m" | |||||
| echo -e " \033[41;37m# sudo chown $USER:$USER $BAK_Disk_A_Mount_Point \033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| CP_TO_BAK_Disk_B (){ | |||||
| echo -e "\033[32mCopy the backup files to Backup_Disk_B...\033[0m" | |||||
| cp $JOE_Bak_File_Name_TS $BAK_Disk_B_JOE_Bak_File_Name_TS | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_B_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($BAK_Disk_B_JOE_Bak_File_Name_TS) \033[0m" | tee -a $LOG1 | |||||
| echo | |||||
| echo -e " \033[35mIf you got (Permission denied) message, please perform below command and re-do again. \033[0m" | |||||
| echo -e " \033[35mIt happened at fist backup, caused from created disk mount point folder ($BAK_Disk_B_Mount_Point) with sudo \033[0m" | |||||
| echo -e " \033[41;37m# sudo chown $USER:$USER $BAK_Disk_B_Mount_Point \033[0m" | |||||
| echo | |||||
| exit | |||||
| fi | |||||
| } | |||||
| echo -e "===== `date +"%Y/%m/%d %H:%M:%S"` ===== \033[45;37m$0\033[0m =====" | tee -a $LOG1 | |||||
| CHK_PWFile | |||||
| CHK_LOG_Folder | |||||
| CHK_JOE_Bak_Folder | |||||
| Mysql_Dump | |||||
| CHK_BAK_Disk_A | |||||
| CHK_BAK_Disk_A_Mount_Point | |||||
| CHK_BAK_Disk_A_Mount_Status | |||||
| CHK_BAK_Disk_A_Hostname_Folder | |||||
| CHK_BAK_Disk_A_JOE_BAK_Folder | |||||
| CP_TO_BAK_Disk_A | |||||
| CHK_BAK_Disk_B | |||||
| CHK_BAK_Disk_B_Mount_Point | |||||
| CHK_BAK_Disk_B_Mount_Status | |||||
| CHK_BAK_Disk_B_Hostname_Folder | |||||
| CHK_BAK_Disk_B_JOE_BAK_Folder | |||||
| CP_TO_BAK_Disk_B | |||||
| echo | |||||
| echo -e "\033[33mIf you want to check the LOG, please perform below command: " | |||||
| echo -e " # cat $LOG1\033[0m" | |||||
| echo |
| #!/bin/bash | #!/bin/bash | ||||
| JOE_Database_Name=db_ed8_ | |||||
| TMP_File=/ED/JOE/JOErestore_from_local.pw | |||||
| BAK_Project=JOE | |||||
| Database_Name=db_ed8_ | |||||
| TMP_File=/ED/${BAK_Project}/${BAK_Project}restore_from_local.pw | |||||
| read -p "Please enter the user name of mysql $JOE_Database_Name: " edname | |||||
| read -p "Please enter the user name of mysql $Database_Name: " edname | |||||
| echo -e "ID\t$edname" > $TMP_File | echo -e "ID\t$edname" > $TMP_File | ||||
| read -p "Please enter the password of mysql $JOE_Database_Name: " edpw | |||||
| read -p "Please enter the password of mysql $Database_Name: " edpw | |||||
| echo -e "Password\t$edpw" >> $TMP_File | echo -e "Password\t$edpw" >> $TMP_File | ||||
| LOG1=/ED/JOE/Script_JOE/_LOG/JOErestore_from_local-mysql.log | |||||
| LOG1=/ED/${BAK_Project}/Script_${BAK_Project}/_LOG/${BAK_Project}restore_from_local-mysql.log | |||||
| edID=`cat $TMP_File | grep "ID" | awk '{print $NF}'` | edID=`cat $TMP_File | grep "ID" | awk '{print $NF}'` | ||||
| edPW=`cat $TMP_File | grep "Password" | awk '{print $NF}'` | edPW=`cat $TMP_File | grep "Password" | awk '{print $NF}'` | ||||
| echo -e "\033[32mBelow are all saved mysql backup files \033[0m" | echo -e "\033[32mBelow are all saved mysql backup files \033[0m" | ||||
| ls /ED/JOE/Backup_file/ -al | grep backup-mysql-JOE | |||||
| ls /ED/${BAK_Project}/Backup_file/ -al | grep backup-mysql-${BAK_Project} | |||||
| echo | echo | ||||
| echo -e -n "\033[33mWhich file do you want to restore? \033[0m" | echo -e -n "\033[33mWhich file do you want to restore? \033[0m" | ||||
| read DATABASE_BAK_File_NAME | read DATABASE_BAK_File_NAME | ||||
| ls /ED/JOE/Backup_file/$DATABASE_BAK_File_NAME > /dev/null 2>&1 | |||||
| ls /ED/${BAK_Project}/Backup_file/$DATABASE_BAK_File_NAME > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e "\033[41;37mFail. The file ($DATABASE_BAK_File_NAME) doesn't exist. Exit \033[0m" | echo -e "\033[41;37mFail. The file ($DATABASE_BAK_File_NAME) doesn't exist. Exit \033[0m" | ||||
| echo | echo | ||||
| echo "======= `date +"%Y/%m/%d %H:%M:%S"` ==========================" | tee -a $LOG1 | echo "======= `date +"%Y/%m/%d %H:%M:%S"` ==========================" | tee -a $LOG1 | ||||
| echo "`date +"%Y/%m/%d %H:%M:%S"` - Starting restore JOE mysql from dumped files" | tee -a $LOG1 | |||||
| echo "`date +"%Y/%m/%d %H:%M:%S"` - Starting restore ${BAK_Project} mysql from dumped files" | tee -a $LOG1 | |||||
| mysql -u $edID -p$edPW -e 'show databases;' | mysql -u $edID -p$edPW -e 'show databases;' | ||||
| mysql -u $edID -p$edPW -e 'show databases;' | grep $JOE_Database_Name | wc -l > /dev/null 2>&1 | |||||
| mysql -u $edID -p$edPW -e 'show databases;' | grep $Database_Name | wc -l > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e "\033[44;37m1/2: The database named $JOE_Database_Name exist, go next\033[0m" | tee -a $LOG1 | |||||
| echo -e "\033[44;37m1/2: The database named $Database_Name exist, go next\033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo "\033[45;37m1/2: There is no database named $JOE_Database_Name, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| echo "\033[45;37m1/2: There is no database named $Database_Name, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| expect -c " | expect -c " | ||||
| spawn sudo mysql -u $edID -p -e \"CREATE DATABASE IF NOT EXISTS $JOE_Database_Name\" | |||||
| spawn sudo mysql -u $edID -p -e \"CREATE DATABASE IF NOT EXISTS $Database_Name\" | |||||
| expect \"password for ed:\" | expect \"password for ed:\" | ||||
| send \"$edPW\r\" | send \"$edPW\r\" | ||||
| expect \"Enter password:\" | expect \"Enter password:\" | ||||
| sleep 2 | sleep 2 | ||||
| fi | fi | ||||
| #sudo mysql -u $edID -p $JOE_Database_Name < /ED/JOE/Backup_file/backup.sql | |||||
| #mysql -u $edID -p$edPW $JOE_Database_Name < /ED/JOE/Backup_file/backup.sql | |||||
| gunzip -c /ED/JOE/Backup_file/$DATABASE_BAK_File_NAME | mysql -u $edID -p$edpw $JOE_Database_Name #with gzip restore | |||||
| #sudo mysql -u $edID -p $Database_Name < /ED/${BAK_Project}/Backup_file/backup.sql | |||||
| #mysql -u $edID -p$edPW $Database_Name < /ED/${BAK_Project}/Backup_file/backup.sql | |||||
| gunzip -c /ED/${BAK_Project}/Backup_file/$DATABASE_BAK_File_NAME | mysql -u $edID -p$edpw $Database_Name #with gzip restore | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e "\033[44;37m2/2: Restored mysql. Finished\033[0m" | tee -a $LOG1 | echo -e "\033[44;37m2/2: Restored mysql. Finished\033[0m" | tee -a $LOG1 | ||||
| else | else |
| #!/bin/bash | #!/bin/bash | ||||
| JOE_Database_Name=db_ed8_ | |||||
| TMP_File=/ED/JOE/JOErestore_from_local.pw | |||||
| BAK_Project=JOE | |||||
| Database_Name=db_ed8_ | |||||
| TMP_File=/ED/${BAK_Project}/${BAK_Project}restore_from_local.pw | |||||
| read -p "Please enter the user name of mysql $JOE_Database_Name: " edname | |||||
| read -p "Please enter the user name of mysql $Database_Name: " edname | |||||
| echo -e "ID\t$edname" > $TMP_File | echo -e "ID\t$edname" > $TMP_File | ||||
| read -p "Please enter the password of mysql $JOE_Database_Name: " edpw | |||||
| read -p "Please enter the password of mysql $Database_Name: " edpw | |||||
| echo -e "Password\t$edpw" >> $TMP_File | echo -e "Password\t$edpw" >> $TMP_File | ||||
| LOG1=/ED/JOE/Script_JOE/_LOG/JOErestore_from_local-mysql.log | |||||
| LOG1=/ED/${BAK_Project}/Script_${BAK_Project}/_LOG/${BAK_Project}restore_from_local-mysql.log | |||||
| edID=`cat $TMP_File | grep "ID" | awk '{print $NF}'` | edID=`cat $TMP_File | grep "ID" | awk '{print $NF}'` | ||||
| edPW=`cat $TMP_File | grep "Password" | awk '{print $NF}'` | edPW=`cat $TMP_File | grep "Password" | awk '{print $NF}'` | ||||
| echo -e "\033[32mBelow are all saved mysql backup files \033[0m" | echo -e "\033[32mBelow are all saved mysql backup files \033[0m" | ||||
| ls /ED/JOE/Backup_file/ -al | grep backup-mysql-JOE | |||||
| ls /ED/${BAK_Project}/Backup_file/ -al | grep backup-mysql-${BAK_Project} | |||||
| echo | echo | ||||
| echo -e -n "\033[33mWhich file do you want to restore? \033[0m" | echo -e -n "\033[33mWhich file do you want to restore? \033[0m" | ||||
| read DATABASE_BAK_File_NAME | read DATABASE_BAK_File_NAME | ||||
| ls /ED/JOE/Backup_file/$DATABASE_BAK_File_NAME > /dev/null 2>&1 | |||||
| ls /ED/${BAK_Project}/Backup_file/$DATABASE_BAK_File_NAME > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | if [[ $? != 0 ]]; then | ||||
| echo -e "\033[41;37mFail. The file ($DATABASE_BAK_File_NAME) doesn't exist. Exit \033[0m" | echo -e "\033[41;37mFail. The file ($DATABASE_BAK_File_NAME) doesn't exist. Exit \033[0m" | ||||
| echo | echo | ||||
| echo "======= `date +"%Y/%m/%d %H:%M:%S"` ==========================" | tee -a $LOG1 | echo "======= `date +"%Y/%m/%d %H:%M:%S"` ==========================" | tee -a $LOG1 | ||||
| echo "`date +"%Y/%m/%d %H:%M:%S"` - Starting restore JOE mysql from dumped files" | tee -a $LOG1 | |||||
| echo "`date +"%Y/%m/%d %H:%M:%S"` - Starting restore ${BAK_Project} mysql from dumped files" | tee -a $LOG1 | |||||
| /opt/lampp/bin/mysql -u $edID -p$edPW -e 'show databases;' | /opt/lampp/bin/mysql -u $edID -p$edPW -e 'show databases;' | ||||
| /opt/lampp/bin/mysql -u $edID -p$edPW -e 'show databases;' | grep $JOE_Database_Name | wc -l > /dev/null 2>&1 | |||||
| /opt/lampp/bin/mysql -u $edID -p$edPW -e 'show databases;' | grep $Database_Name | wc -l > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e "\033[44;37m1/2: The database named $JOE_Database_Name exist, go next\033[0m" | tee -a $LOG1 | |||||
| echo -e "\033[44;37m1/2: The database named $Database_Name exist, go next\033[0m" | tee -a $LOG1 | |||||
| else | else | ||||
| echo "\033[45;37m1/2: There is no database named $JOE_Database_Name, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| echo "\033[45;37m1/2: There is no database named $Database_Name, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| expect -c " | expect -c " | ||||
| spawn sudo /opt/lampp/bin/mysql -u $edID -p -e \"CREATE DATABASE IF NOT EXISTS $JOE_Database_Name\" | |||||
| spawn sudo /opt/lampp/bin/mysql -u $edID -p -e \"CREATE DATABASE IF NOT EXISTS $Database_Name\" | |||||
| expect \"password for ed:\" | expect \"password for ed:\" | ||||
| send \"$edPW\r\" | send \"$edPW\r\" | ||||
| expect \"Enter password:\" | expect \"Enter password:\" | ||||
| sleep 2 | sleep 2 | ||||
| fi | fi | ||||
| #sudo /opt/lampp/bin/mysql -u $edID -p $JOE_Database_Name < /ED/JOE/Backup_file/backup.sql | |||||
| #/opt/lampp/bin/mysql -u $edID -p$edPW $JOE_Database_Name < /ED/JOE/Backup_file/backup.sql | |||||
| gunzip -c /ED/JOE/Backup_file/$DATABASE_BAK_File_NAME | /opt/lampp/bin/mysql -u $edID -p$edpw $JOE_Database_Name #with gzip restore | |||||
| #sudo /opt/lampp/bin/mysql -u $edID -p $Database_Name < /ED/${BAK_Project}/Backup_file/backup.sql | |||||
| #/opt/lampp/bin/mysql -u $edID -p$edPW $Database_Name < /ED/${BAK_Project}/Backup_file/backup.sql | |||||
| gunzip -c /ED/${BAK_Project}/Backup_file/$DATABASE_BAK_File_NAME | /opt/lampp/bin/mysql -u $edID -p$edpw $Database_Name #with gzip restore | |||||
| if [[ $? == 0 ]]; then | if [[ $? == 0 ]]; then | ||||
| echo -e "\033[44;37m2/2: Restored mysql. Finished\033[0m" | tee -a $LOG1 | echo -e "\033[44;37m2/2: Restored mysql. Finished\033[0m" | tee -a $LOG1 | ||||
| else | else |
| #!/bin/bash | |||||
| JOE_Database_Name=db_ed8_ | |||||
| TMP_File=/ED/JOE/JOErestore_from_local.pw | |||||
| read -p "Please enter the user name of mysql $JOE_Database_Name: " edname | |||||
| echo -e "ID\t$edname" > $TMP_File | |||||
| read -p "Please enter the password of mysql $JOE_Database_Name: " edpw | |||||
| echo -e "Password\t$edpw" >> $TMP_File | |||||
| LOG1=/ED/JOE/Script_JOE/_LOG/JOErestore_from_local-mysql.log | |||||
| edID=`cat $TMP_File | grep "ID" | awk '{print $NF}'` | |||||
| edPW=`cat $TMP_File | grep "Password" | awk '{print $NF}'` | |||||
| echo -e "\033[32mBelow are all saved mysql backup files \033[0m" | |||||
| ls /ED/JOE/Backup_file/ -al | grep backup-mysql-JOE | |||||
| echo | |||||
| echo -e -n "\033[33mWhich file do you want to restore? \033[0m" | |||||
| read DATABASE_BAK_File_NAME | |||||
| ls /ED/JOE/Backup_file/$DATABASE_BAK_File_NAME > /dev/null 2>&1 | |||||
| if [[ $? != 0 ]]; then | |||||
| echo -e "\033[41;37mFail. The file ($DATABASE_BAK_File_NAME) doesn't exist. Exit \033[0m" | |||||
| echo | |||||
| exit | |||||
| else | |||||
| echo -e "\033[34mPass. The file ($DATABASE_BAK_File_NAME) exist, go next..." | |||||
| fi | |||||
| echo "======= `date +"%Y/%m/%d %H:%M:%S"` ==========================" | tee -a $LOG1 | |||||
| echo "`date +"%Y/%m/%d %H:%M:%S"` - Starting restore JOE mysql from dumped files" | tee -a $LOG1 | |||||
| mysql -u $edID -p$edPW -e 'show databases;' | |||||
| mysql -u $edID -p$edPW -e 'show databases;' | grep $JOE_Database_Name | wc -l > /dev/null 2>&1 | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[44;37m1/2: The database named $JOE_Database_Name exist, go next\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo "\033[45;37m1/2: There is no database named $JOE_Database_Name, next will create a new one automatically.\033[0m" | tee -a $LOG1 | |||||
| expect -c " | |||||
| spawn sudo mysql -u $edID -p -e \"CREATE DATABASE IF NOT EXISTS $JOE_Database_Name\" | |||||
| expect \"password for ed:\" | |||||
| send \"$edPW\r\" | |||||
| expect \"Enter password:\" | |||||
| send \"$edPW\r\" | |||||
| expect eof" | |||||
| sleep 2 | |||||
| fi | |||||
| #sudo mysql -u $edID -p $JOE_Database_Name < /ED/JOE/Backup_file/backup.sql | |||||
| #mysql -u $edID -p$edPW $JOE_Database_Name < /ED/JOE/Backup_file/backup.sql | |||||
| gunzip -c /ED/JOE/Backup_file/$DATABASE_BAK_File_NAME | mysql -u $edID -p$edpw $JOE_Database_Name #with gzip restore | |||||
| if [[ $? == 0 ]]; then | |||||
| echo -e "\033[44;37m2/2: Restored mysql. Finished\033[0m" | tee -a $LOG1 | |||||
| else | |||||
| echo -e "\033[41;37m2/2: Restore mysql failed.\033[0m" | tee -a $LOG1 | |||||
| fi | |||||
| rm $TMP_File | |||||
| echo | tee -a $LOG1 | |||||
| echo -e "If you want to check the LOG, please perform below command: " | |||||
| echo -e " \033[35m# cat $LOG1 \033[0m" | |||||
| echo |
| A: OS_HDD only | A: OS_HDD only | ||||
| B: OS_HDD + BAK_Disk_A | B: OS_HDD + BAK_Disk_A | ||||
| C: OS_HDD + BAK_Disk_A + BAK_Disk_B | C: OS_HDD + BAK_Disk_A + BAK_Disk_B | ||||
| [howto] copy the other Machine | |||||
| 1. scp all file to <destenation directory> | |||||
| 2. Change to <destenation directory> | |||||
| 3. Performing below command to change all scripts content | |||||
| # sed -i 's/ED8/xxxxx/g' * | |||||
| 4. Rename all files | |||||
| # mv ED8backup-mysql-Auto.sh xxxxxbackup-mysql-Auto.sh | |||||
| # mv ED8backup-mysql-Auto.sh.SRC | |||||
| # mv ED8backup-Script_ED8-Auto.sh | |||||
| # mv ED8backup-Script_ED8-Auto.sh.SRC | |||||
| # mv ED8backup-Source_Files-Auto.sh | |||||
| # mv ED8backup-Source_Files-Auto.sh.SRC | |||||
| # mv ED8Remote_backup.sh | |||||
| # mv ED8Remote_backup.sh.SRC | |||||
| # mv ED8restore_from_local-mysql.sh | |||||
| # mv ED8restore_from_local-mysql.sh.SRC | |||||
| # mv ...... | |||||
| # mv ...... | |||||
| 5. Done |
| ===== 2019/08/07 23:11:36 ===== [45;37m./JOEbackup-Script_JOE-Auto.sh[0m ===== | |||||
| [33mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | |||||
| /ED/JOE/Script_JOE/ | |||||
| /ED/JOE/Script_JOE/JOEbackup-mysql-Auto.sh.TMP | |||||
| /ED/JOE/Script_JOE/_LOG/ | |||||
| /ED/JOE/Script_JOE/_LOG/JOEbackup-mysql-Auto.log | |||||
| /ED/JOE/Script_JOE/_LOG/ED8restore_from_local-mysql.log | |||||
| /ED/JOE/Script_JOE/_LOG/ED8_restore_from_local-mysql.log | |||||
| /ED/JOE/Script_JOE/_LOG/ED8backup-Script_ED8.log | |||||
| /ED/JOE/Script_JOE/_LOG/ED8backup-mysql-Auto.log | |||||
| /ED/JOE/Script_JOE/_LOG/JOEbackup-Script_JOE.log | |||||
| /ED/JOE/Script_JOE/JOErestore_from_local-mysql.sh | |||||
| /ED/JOE/Script_JOE/JOEbackup-Script_JOE-Auto.sh | |||||
| /ED/JOE/Script_JOE/JOErestore_from_local-mysql.sh.SRC | |||||
| /ED/JOE/Script_JOE/JOEbackup-mysql-Auto.sh.SRC | |||||
| /ED/JOE/Script_JOE/JOEbackup-mysql-Auto.sh | |||||
| /ED/JOE/Script_JOE/Readme.txt | |||||
| /ED/JOE/Script_JOE/JOErestore_from_local-mysql.sh.TMP | |||||
| /ED/JOE/Script_JOE/01.ENV_check.sh | |||||
| /ED/JOE/Script_JOE/02.AutoBackup_crontab_check.sh | |||||
| [44;37mPass. tar Script_JOE file OK.[0m | |||||
| [44;37mPass. Make a copy file to "/ED/JOE/Backup_file". Finished![0m | |||||
| [34mPass. Copied to BAK_Disk_A. [0m | |||||
| ===== 2019/08/08 02:44:59 ===== [45;37m./JOEbackup-Script_JOE-Auto.sh[0m ===== | |||||
| ===== 2019/08/12 01:22:21 ===== [45;37m./JOEbackup-Script_JOE-Auto.sh[0m ===== | |||||
| [32mStart backup the Script_JOE [0m | [32mStart backup the Script_JOE [0m | ||||
| [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | ||||
| [34mPass. tar Script_JOE file OK.[0m | [34mPass. tar Script_JOE file OK.[0m | ||||
| [34mPass. Make a copy file to "/ED/JOE/Backup_file". Finished![0m | [34mPass. Make a copy file to "/ED/JOE/Backup_file". Finished![0m | ||||
| [32mStart backup the Script_JOE to BAK_Disk_A [0m | |||||
| [32mCopy the backup files to Backup_Disk_A...[0m | |||||
| [34mPass. Copied to BAK_Disk_A. [0m | [34mPass. Copied to BAK_Disk_A. [0m | ||||
| [32mCopy the backup files to Backup_Disk_B...[0m | |||||
| [34mPass. Copied to BAK_Disk_B. [0m | |||||
| ===== 2019/08/08 02:43:24 ===== [45;37m./JOEbackup-Source_Files-Auto.sh[0m ===== | |||||
| ===== 2019/08/12 01:23:17 ===== [45;37m./JOEbackup-Source_Files-Auto.sh[0m ===== | |||||
| [32mStart backup the JOE Source_Files [0m | [32mStart backup the JOE Source_Files [0m | ||||
| [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | ||||
| [34mPass. tar Source_Files file OK.[0m | [34mPass. tar Source_Files file OK.[0m | ||||
| [34mPass. Make a copy file to "/ED/JOE/Backup_file". Finished![0m | [34mPass. Make a copy file to "/ED/JOE/Backup_file". Finished![0m | ||||
| [32mStart backup the JOE Source_Files to BAK_Disk_A [0m | |||||
| [34mPass. Copied to BAK_Disk_A. [0m | |||||
| ===== 2019/08/08 02:45:04 ===== [45;37m./JOEbackup-Source_Files-Auto.sh[0m ===== | |||||
| [32mStart backup the JOE Source_Files [0m | |||||
| [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | |||||
| [34mPass. tar Source_Files file OK.[0m | |||||
| [34mPass. Make a copy file to "/ED/JOE/Backup_file". Finished![0m | |||||
| [32mStart backup the JOE Source_Files to BAK_Disk_A [0m | |||||
| [32mCopy the backup files to Backup_Disk_A...[0m | |||||
| [34mPass. Copied to BAK_Disk_A. [0m | [34mPass. Copied to BAK_Disk_A. [0m | ||||
| [32mCopy the backup files to Backup_Disk_B...[0m | |||||
| [34mPass. Copied to BAK_Disk_B. [0m | |||||
| ===== 2019/08/07 21:51:37 ===== [45;37m./JOEbackup-mysql-Auto.sh[0m ===== | |||||
| >> [34mPass. /home/girl/PW/mysql_JOE.info exist.[0m | |||||
| >> [34mPass. There is a folder "/ED/JOE/Script_JOE/_LOG". [0m | |||||
| >> [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | >> [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | ||||
| [45;37m==========================================================================================[0m | [45;37m==========================================================================================[0m | ||||
| [41;37m Important! Please check below messages for making sure mysqldump be performed exactly. [0m | [41;37m Important! Please check below messages for making sure mysqldump be performed exactly. [0m | ||||
| >> [34mPass. mysql dump w/ gzip OK. [0m | >> [34mPass. mysql dump w/ gzip OK. [0m | ||||
| [45;37m==========================================================================================[0m | [45;37m==========================================================================================[0m | ||||
| [32mStarting make a copy with timastamp filename...[0m | [32mStarting make a copy with timastamp filename...[0m | ||||
| >> [34mPass. Make a copy OK - [35m(/ED/JOE/Backup_file/backup-mysql-JOE-20190807-215137.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_A mount point exist "/BAK_Disk_A"[0m | |||||
| >> [34mPass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"[0m | |||||
| >> [34mPass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.[0m | |||||
| >> [33mWarning! There is no BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/JOE/Backup_file, next will create a new one automatically.[0m | |||||
| ===== 2019/08/07 22:43:53 ===== [45;37m./JOEbackup-mysql-Auto.sh[0m ===== | |||||
| >> [34mPass. /home/girl/PW/mysql_JOE.info exist.[0m | |||||
| >> [34mPass. There is a folder "/ED/JOE/Script_JOE/_LOG". [0m | |||||
| >> [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [41;37m Important! Please check below messages for making sure mysqldump be performed exactly. [0m | |||||
| >> [34mPass. mysql dump w/ gzip OK. [0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [32mStarting make a copy with timastamp filename...[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/ED/JOE/Backup_file/backup-mysql-JOE-20190807-224353.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_A mount point exist "/BAK_Disk_A"[0m | |||||
| >> [34mPass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"[0m | |||||
| >> [34mPass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_A/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190807-224353.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_B mount point exist "/BAK_Disk_B"[0m | |||||
| >> [34mPass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"[0m | |||||
| >> [34mPass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.[0m | |||||
| >> [33mWarning! There is no BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/JOE/Backup_file, next will create a new one automatically.[0m | |||||
| ===== 2019/08/07 22:53:27 ===== [45;37m./JOEbackup-mysql-Auto.sh[0m ===== | |||||
| >> [34mPass. /home/girl/PW/mysql_JOE.info exist.[0m | |||||
| >> [34mPass. There is a folder "/ED/JOE/Script_JOE/_LOG". [0m | |||||
| >> [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [41;37m Important! Please check below messages for making sure mysqldump be performed exactly. [0m | |||||
| >> [34mPass. mysql dump w/ gzip OK. [0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [32mStarting make a copy with timastamp filename...[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/ED/JOE/Backup_file/backup-mysql-JOE-20190807-225327.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_A mount point exist "/BAK_Disk_A"[0m | |||||
| >> [34mPass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"[0m | |||||
| >> [34mPass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_A/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190807-225327.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_B mount point exist "/BAK_Disk_B"[0m | |||||
| >> [34mPass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"[0m | |||||
| >> [34mPass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_B/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190807-225327.gz) [0m | |||||
| ===== 2019/08/07 22:54:21 ===== [45;37m./JOEbackup-mysql-Auto.sh[0m ===== | |||||
| >> [34mPass. /home/girl/PW/mysql_JOE.info exist.[0m | |||||
| >> [34mPass. There is a folder "/ED/JOE/Script_JOE/_LOG". [0m | |||||
| >> [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [41;37m Important! Please check below messages for making sure mysqldump be performed exactly. [0m | |||||
| >> [34mPass. mysql dump w/ gzip OK. [0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [32mStarting make a copy with timastamp filename...[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/ED/JOE/Backup_file/backup-mysql-JOE-20190807-225421.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_A mount point exist "/BAK_Disk_A"[0m | |||||
| >> [34mPass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"[0m | |||||
| >> [34mPass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_A/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190807-225421.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_B mount point exist "/BAK_Disk_B"[0m | |||||
| >> [34mPass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"[0m | |||||
| >> [34mPass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_B/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190807-225421.gz) [0m | |||||
| ===== 2019/08/07 22:59:38 ===== [45;37m./JOEbackup-mysql-Auto.sh[0m ===== | |||||
| >> [34mPass. /home/girl/PW/mysql_JOE.info exist.[0m | |||||
| >> [34mPass. There is a folder "/ED/JOE/Script_JOE/_LOG". [0m | |||||
| >> [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [41;37m Important! Please check below messages for making sure mysqldump be performed exactly. [0m | |||||
| >> [34mPass. mysql dump w/ gzip OK. [0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [32mStarting make a copy with timastamp filename...[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/ED/JOE/Backup_file/backup-mysql-JOE-20190807-225938.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_A mount point exist "/BAK_Disk_A"[0m | |||||
| >> [34mPass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"[0m | |||||
| >> [34mPass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_A/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190807-225938.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_B mount point exist "/BAK_Disk_B"[0m | |||||
| >> [34mPass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"[0m | |||||
| >> [34mPass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_B/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190807-225938.gz) [0m | |||||
| ===== 2019/08/08 02:44:51 ===== [45;37m./JOEbackup-mysql-Auto.sh[0m ===== | |||||
| >> [34mPass. /home/girl/PW/mysql_JOE.info exist.[0m | |||||
| >> [34mPass. There is a folder "/ED/JOE/Script_JOE/_LOG". [0m | |||||
| >> [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [41;37m Important! Please check below messages for making sure mysqldump be performed exactly. [0m | |||||
| >> [34mPass. mysql dump w/ gzip OK. [0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [32mStarting make a copy with timastamp filename...[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/ED/JOE/Backup_file/backup-mysql-JOE-20190808-024451.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_A mount point exist "/BAK_Disk_A"[0m | |||||
| >> [34mPass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"[0m | |||||
| >> [34mPass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_A/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190808-024451.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. [0m | |||||
| >> [34mPass. The BAK_Disk_B mount point exist "/BAK_Disk_B"[0m | |||||
| >> [34mPass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"[0m | |||||
| >> [34mPass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.[0m | |||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/JOE/Backup_file exist, go next.[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_B/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190808-024451.gz) [0m | |||||
| ===== 2019/08/09 02:38:01 ===== [45;37m/ED/JOE/Script_JOE/JOEbackup-mysql-Auto.sh[0m ===== | |||||
| >> [34mPass. /home/girl/PW/mysql_JOE.info exist.[0m | |||||
| >> [34mPass. There is a folder "/ED/JOE/Script_JOE/_LOG". [0m | |||||
| >> [34mPass. Backup file saving folder: /ED/JOE/Backup_file exist, go next.[0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [41;37m Important! Please check below messages for making sure mysqldump be performed exactly. [0m | |||||
| >> [34mPass. mysql dump w/ gzip OK. [0m | |||||
| [45;37m==========================================================================================[0m | |||||
| [32mStarting make a copy with timastamp filename...[0m | |||||
| >> [34mPass. Make a copy OK - [35m(/ED/JOE/Backup_file/backup-mysql-JOE-20190809-023801.gz) [0m | |||||
| >> [34mPass. Make a copy OK - [35m(/ED/JOE/Backup_file/backup-mysql-JOE-20190812-012015.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. [0m | >> [34mPass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. [0m | ||||
| >> [34mPass. The BAK_Disk_A mount point exist "/BAK_Disk_A"[0m | >> [34mPass. The BAK_Disk_A mount point exist "/BAK_Disk_A"[0m | ||||
| >> [34mPass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"[0m | >> [34mPass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"[0m | ||||
| >> [34mPass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.[0m | >> [34mPass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.[0m | ||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/JOE/Backup_file exist, go next.[0m | >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/JOE/Backup_file exist, go next.[0m | ||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_A/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190809-023801.gz) [0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_A/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190812-012015.gz) [0m | |||||
| >> [34mPass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. [0m | >> [34mPass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. [0m | ||||
| >> [34mPass. The BAK_Disk_B mount point exist "/BAK_Disk_B"[0m | >> [34mPass. The BAK_Disk_B mount point exist "/BAK_Disk_B"[0m | ||||
| >> [34mPass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"[0m | >> [34mPass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"[0m | ||||
| >> [34mPass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.[0m | >> [34mPass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.[0m | ||||
| >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/JOE/Backup_file exist, go next.[0m | >> [34mPass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/JOE/Backup_file exist, go next.[0m | ||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_B/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190809-023801.gz) [0m | |||||
| >> [34mPass. Make a copy OK - [35m(/BAK_Disk_B/girl-Home/JOE/Backup_file/backup-mysql-JOE-20190812-012015.gz) [0m |