Gitea 6 лет назад
Родитель
Сommit
4e16836a07

+ 84
- 19
01.ENV_check.sh Просмотреть файл

#!/bin/bash #!/bin/bash
Script_SRC_BAK=Gitea_EDbackup-mysql-Auto.sh.SRC
Script_TMP_BAK=Gitea_EDbackup-mysql-Auto.sh.TMP
Script_REAL_BAK=Gitea_EDbackup-mysql-Auto.sh
Script_SRC_Restore=Gitea_EDrestore_from_local-mysql.sh.SRC
Script_TMP_Restore=Gitea_EDrestore_from_local-mysql.sh.TMP
Script_REAL_Restore=Gitea_EDrestore_from_local-mysql.sh
BAK_Project=Gitea_ED
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_Gitea_ED.info"
WORK_Folder="/ED/Gitea_ED/Script_Gitea_ED"
SOUCE_Folder="/ED/Gitea_ED/Source_Files"
Bak_Folder="/ED/Gitea_ED/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/Gitea_ED -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_Gitea_ED_BAK_Folder/CHK_BAK_Disk_A_Gitea_ED_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_Gitea_ED_BAK_Folder/CHK_BAK_Disk_A_Gitea_ED_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_Gitea_ED_BAK_Folder/CHK_BAK_Disk_B_Gitea_ED_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_gitea"
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 Gitea_EDrestore_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 Gitea_EDbackup-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

+ 59
- 15
02.AutoBackup_crontab_check.sh Просмотреть файл

Service1=/ED/Gitea_ED/Script_Gitea_ED/Gitea_EDbackup-mysql-Auto.sh Service1=/ED/Gitea_ED/Script_Gitea_ED/Gitea_EDbackup-mysql-Auto.sh
Service2=/ED/Gitea_ED/Script_Gitea_ED/Gitea_EDbackup-Script_Gitea_ED-Auto.sh Service2=/ED/Gitea_ED/Script_Gitea_ED/Gitea_EDbackup-Script_Gitea_ED-Auto.sh
Service3=/ED/Gitea_ED/Script_Gitea_ED/Gitea_EDbackup-Source_Files-Auto.sh Service3=/ED/Gitea_ED/Script_Gitea_ED/Gitea_EDbackup-Source_Files-Auto.sh
Service4=/ED/Gitea_ED/Script_Gitea_ED/Gitea_EDRemote_backup.sh
Service5=/ED/Gitea_ED/Script_Gitea_ED/Gitea_EDbackup-INI.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 03:08\033[0m"
echo -e "\033[33m8 3 */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 03:08\033[0m"
echo -e "\033[33m8 3 */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 03:06"
echo -e "\033[33m6 3 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 03:06"
echo -e "\033[33m6 3 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 03:00"
echo -e "\033[33m0 3 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 03:00"
echo -e "\033[33m0 3 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

crontab -u $WHO -l | grep "$Service5" > /dev/null 2>&1
if [[ $? == 0 ]]; then
crontab -u $WHO -l | grep "$Service5" | cut -c 1-8 | grep "#" > /dev/null 2>&1
if [[ $? != 0 ]]; then
echo -e "\033[33mPass. $Service5 was set active. \033[0m"
else
echo -e "\033[45;37mWarning! $Service5 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 first day of month at 03:20"
echo -e "\033[33m20 3 1 * * $Service5\033[0m"


fi
else
echo -e "\033[41;37mFail. $Service5 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 first day of month at 03:20"
echo -e "\033[33m20 3 1 * * $Service5\033[0m"
fi
echo echo


echo



+ 228
- 0
Gitea_EDRemote_backup.sh Просмотреть файл

#!/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=Gitea_ED
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

+ 228
- 0
Gitea_EDRemote_backup.sh.SRC Просмотреть файл

#!/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=Gitea_ED
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

+ 119
- 0
Gitea_EDbackup-INI.sh Просмотреть файл

#!/bin/bash
BAK_Project=Gitea_ED
USER=`whoami`
LOG_Folder="_LOG"
LOG1=/ED/${BAK_Project}/Script_${BAK_Project}/_LOG/${BAK_Project}backup-INI.log
TS=`date +"%Y%m%d-%H%M%S"`
Bak_Folder="/ED/${BAK_Project}/Backup_file"

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_GITEA_INI_TS=$BAK_Disk_A_Script_BAK_Folder/app.ini-$TS
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_GITEA_INI_TS=$BAK_Disk_B_Script_BAK_Folder/app.ini-$TS

Target_Folder=/ED/${BAK_Project}/Script_${BAK_Project}

GITEA_INI="/var/lib/gitea/custom/conf/app.ini"
GITEA_INI_TS="$Bak_Folder/app.ini-$TS"


##### 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
}

BAK_GITEA_INI_BAK_Disk_A (){
echo -e "\033[32mStart backup the app.ini of gitea to BAK_Disk_A...\033[0m"
ls $GITEA_INI > /dev/null 2>&1
if [[ $? == 0 ]]; then
echo -e "\033[34mPass. $GITEA_INI exist \033[0m"
cp $GITEA_INI $GITEA_INI_TS && cp $GITEA_INI $BAK_Disk_A_GITEA_INI_TS
if [[ $? == 0 ]]; then
echo -e "\033[34mPass. Make a $GITEA_INI copy to \"$Bak_Folder\" and \"BAK_Disk_A\" good. \033[0m"
else
echo -e "\033[41;37mFail. Make a $GITEA_INI copy to \"$Bak_Folder\" and \"BAK_Disk_A\" failed. \033[0m"
fi
else
echo -e -n "\033[33mWarning! $GITEA_INI doesn't exist, please input the filename include its full path: (ex: /var/lib/gitea/custom/conf/app.ini) \033[0m"
read INI
ls $INI > /dev/null 2>&1
if [[ $? != 0 ]]; then
echo -e "\033[41;37mFail. We can't get the app.ini file in your input. Exit \033[0m"
echo
exit
else
cp $INI $GITEA_INI_TS && cp $INI $BAK_Disk_A_GITEA_INI_TS
if [[ $? == 0 ]]; then
echo -e "\033[34mPass. Make a $INI copy to \"$Bak_Folder\" and \"BAK_Disk_A\" good. \033[0m"
else
echo -e "\033[41;37mFail. Make a $INI copy to \"$Bak_Folder\" and \"BAK_Disk_A\" failed. \033[0m"
fi
fi
fi
}

BAK_GITEA_INI_BAK_Disk_B (){
echo -e "\033[32mStart backup the app.ini of gitea to BAK_Disk_B...\033[0m"
ls $GITEA_INI > /dev/null 2>&1
if [[ $? == 0 ]]; then
echo -e "\033[34mPass. $GITEA_INI exist \033[0m"
cp $GITEA_INI $GITEA_INI_TS && cp $GITEA_INI $BAK_Disk_B_GITEA_INI_TS
if [[ $? == 0 ]]; then
echo -e "\033[34mPass. Make a $GITEA_INI copy to \"$Bak_Folder\" and \"BAK_Disk_B\" good. \033[0m"
else
echo -e "\033[41;37mFail. Make a $GITEA_INI copy to \"$Bak_Folder\" and \"BAK_Disk_B\" failed. \033[0m"
fi
else
echo -e -n "\033[33mWarning! $GITEA_INI doesn't exist, please input the filename include its full path: (ex: /var/lib/gitea/custom/conf/app.ini) \033[0m"
read INI
ls $INI > /dev/null 2>&1
if [[ $? != 0 ]]; then
echo -e "\033[41;37mFail. We can't get the app.ini file in your input. Exit \033[0m"
echo
exit
else
cp $INI $GITEA_INI_TS && cp $INI $BAK_Disk_B_GITEA_INI_TS
if [[ $? == 0 ]]; then
echo -e "\033[34mPass. Make a $INI copy to \"$Bak_Folder\" and \"BAK_Disk_B\" good. \033[0m"
else
echo -e "\033[41;37mFail. Make a $INI copy to \"$Bak_Folder\" and \"BAK_Disk_B\" failed. \033[0m"
fi
fi
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

echo | tee -a $LOG1
BAK_GITEA_INI_BAK_Disk_A | tee -a $LOG1
BAK_GITEA_INI_BAK_Disk_B | tee -a $LOG1

echo | tee -a $LOG1

echo
echo -e "\033[33mLOG file:"
echo -e " $LOG1\033[m"
echo

+ 29
- 51
Gitea_EDbackup-Script_Gitea_ED-Auto.sh Просмотреть файл

#!/bin/bash #!/bin/bash
BAK_Project=Gitea_ED
USER=`whoami` USER=`whoami`
LOG_Folder="_LOG" LOG_Folder="_LOG"
LOG1=/ED/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDbackup-Script_Gitea_ED.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/Gitea_ED/Backup_file"
Bak_File_Name=$Bak_Folder/Script_Gitea_ED.tar
Bak_File_Name_TS=$Bak_Folder/Script_Gitea_ED-$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_Gitea_ED_Script_BAK_Folder="$BAK_Disk_A_Hostname_Folder/Gitea_ED/Backup_file"
BAK_Disk_A_Gitea_ED_Script_Bak_File_Name_TS="$BAK_Disk_A_Gitea_ED_Script_BAK_Folder/Script_Gitea_ED-$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/Gitea_ED/Script_Gitea_ED

GITEA_INI="/var/lib/gitea/custom/conf/app.ini"
GITEA_INI_TS="$Bak_Folder/app.ini-$TS"
BAK_Disk_A_GITEA_INI_TS=$BAK_Disk_A_Gitea_ED_Script_BAK_Folder/app.ini-$TS
Target_Folder=/ED/${BAK_Project}/Script_${BAK_Project}




##### Func ##### Func
CHK_LOG_Folder (){ CHK_LOG_Folder (){
ls /ED/Gitea_ED/Script_Gitea_ED/_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/Gitea_ED/Script_Gitea_ED/_LOG
sudo chown $USER:$USER /ED/Gitea_ED/Script_Gitea_ED/_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_Gitea_ED 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_Gitea_ED 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_Gitea_ED_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
} }


BAK_GITEA_INI (){
ls $GITEA_INI > /dev/null 2>&1
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 if [[ $? == 0 ]]; then
echo -e "\033[34mPass. $GITEA_INI exist \033[0m"
cp $GITEA_INI $GITEA_INI_TS && cp $GITEA_INI $BAK_Disk_A_GITEA_INI_TS
if [[ $? == 0 ]]; then
echo -e "\033[34mPass. Make a $GITEA_INI copy to \"$Bak_Folder\" and \"BAK_Disk_A\" good. \033[0m"
else
echo -e "\033[41;37mFail. Make a $GITEA_INI copy to \"$Bak_Folder\" and \"BAK_Disk_A\" failed. \033[0m"
fi
echo -e "\033[34mPass. Copied to BAK_Disk_B. \033[0m"
else else
echo -e -n "\033[33mWarning! $GITEA_INI doesn't exist, please input the filename include its full path: (ex: /var/lib/gitea/custom/conf/app.ini) \033[0m"
read INI
ls $INI > /dev/null 2>&1
if [[ $? != 0 ]]; then
echo -e "\033[41;37mFail. We can't get the app.ini file in your input. Exit \033[0m"
echo
exit
else
cp $INI $GITEA_INI_TS && cp $INI $BAK_Disk_A_GITEA_INI_TS
if [[ $? == 0 ]]; then
echo -e "\033[34mPass. Make a $INI copy to \"$Bak_Folder\" and \"BAK_Disk_A\" good. \033[0m"
else
echo -e "\033[41;37mFail. Make a $INI copy to \"$Bak_Folder\" and \"BAK_Disk_A\" failed. \033[0m"
fi
fi
echo -e "\033[41;37mFail. Copied to BAK_Disk_B. \033[0m"
fi 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_Gitea_ED \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

echo -e "\033[32mStart backup the Script_Gitea_ED to BAK_Disk_A \033[0m" | tee -a $LOG1
CP_To_BAK_Disk_A | tee -a $LOG1
echo | tee -a $LOG1
CP_TO_BAK_Disk_A | tee -a $LOG1
CP_TO_BAK_Disk_B | tee -a $LOG1


echo | tee -a $LOG1 echo | tee -a $LOG1
echo -e "\033[32mStart backup the app.ini of gitea \033[0m" | tee -a $LOG1
BAK_GITEA_INI | tee -a $LOG1


echo echo
echo -e "\033[33mLOG file:" echo -e "\033[33mLOG file:"
echo -e " $LOG1\033[m"
echo -e " $LOG1\033[0m"
echo echo

+ 92
- 0
Gitea_EDbackup-Script_Gitea_ED-Auto.sh.SRC Просмотреть файл

#!/bin/bash
BAK_Project=Gitea_ED
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

+ 32
- 16
Gitea_EDbackup-Source_Files-Auto.sh Просмотреть файл

#!/bin/bash #!/bin/bash
BAK_Project=Gitea_ED
USER=`whoami` USER=`whoami`
LOG_Folder="_LOG" LOG_Folder="_LOG"
LOG1=/ED/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDbackup-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/Gitea_ED/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_Gitea_ED_Script_BAK_Folder="$BAK_Disk_A_Hostname_Folder/Gitea_ED/Backup_file"
BAK_Disk_A_Gitea_ED_Script_Bak_File_Name_TS="$BAK_Disk_A_Gitea_ED_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/Gitea_ED/Source_Files
Target_Folder=/ED/${BAK_Project}/Source_Files




##### Func ##### Func
CHK_LOG_Folder (){ CHK_LOG_Folder (){
ls /ED/Gitea_ED/Script_Gitea_ED/_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/Gitea_ED/Script_Gitea_ED/_LOG
sudo chown $USER:$USER /ED/Gitea_ED/Script_Gitea_ED/_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_Gitea_ED_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 Gitea_ED 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 Gitea_ED 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

+ 92
- 0
Gitea_EDbackup-Source_Files-Auto.sh.SRC Просмотреть файл

#!/bin/bash
BAK_Project=Gitea_ED
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

+ 48
- 47
Gitea_EDbackup-mysql-Auto.sh Просмотреть файл

#!/bin/bash #!/bin/bash
BAK_Project=Gitea_ED
USER=`whoami` USER=`whoami`
PWFile="/home/$USER/PW/mysql_Gitea_ED.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/Gitea_ED/Script_Gitea_ED/_LOG"
LOG1=/ED/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDbackup-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


Gitea_ED_Bak_Folder="/ED/Gitea_ED/Backup_file"
Gitea_ED_Bak_File_Name=$Gitea_ED_Bak_Folder/backup-mysql-Gitea_ED.gz
Gitea_ED_Bak_File_Name_TS=$Gitea_ED_Bak_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_BAK_Folder="$BAK_Disk_A_Hostname_Folder/Gitea_ED/Backup_file"
BAK_Disk_A_Gitea_ED_Bak_File_Name_TS="$BAK_Disk_A_Gitea_ED_BAK_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_BAK_Folder="$BAK_Disk_B_Hostname_Folder/Gitea_ED/Backup_file"
BAK_Disk_B_Gitea_ED_Bak_File_Name_TS="$BAK_Disk_B_Gitea_ED_BAK_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_Bak_Folder (){
echo -e "\033[32mCheck the local original backup folder exist: \033[35m($Gitea_ED_Bak_Folder) \033[0m"
ls $Gitea_ED_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: $Gitea_ED_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: $Gitea_ED_Bak_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $Gitea_ED_Bak_Folder
sudo chown $USER:$USER $Gitea_ED_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 > $Gitea_ED_Bak_File_Name
# mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $Gitea_ED_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_gitea | gzip > $Gitea_ED_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 $Gitea_ED_Bak_File_Name $Gitea_ED_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($Gitea_ED_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($Gitea_ED_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_Gitea_ED_BAK_Folder (){
echo -e "\033[32mCheck the BAK_Disk_A Gitea_ED backup folder status: \033[35m($BAK_Disk_A_Gitea_ED_BAK_Folder) \033[0m"
ls $BAK_Disk_A_Gitea_ED_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_Gitea_ED_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_Gitea_ED_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $BAK_Disk_A_Gitea_ED_BAK_Folder
sudo chown $USER:$USER $BAK_Disk_A_Gitea_ED_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_Gitea_ED_BAK_Folder (){
echo -e "\033[32mCheck the BAK_Disk_B Gitea_ED backup folder status: \033[35m($BAK_Disk_B_Gitea_ED_BAK_Folder) \033[0m"
ls $BAK_Disk_B_Gitea_ED_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_Gitea_ED_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_Gitea_ED_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $BAK_Disk_B_Gitea_ED_BAK_Folder
sudo chown $USER:$USER $BAK_Disk_B_Gitea_ED_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 $Gitea_ED_Bak_File_Name_TS $BAK_Disk_A_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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 $Gitea_ED_Bak_File_Name_TS $BAK_Disk_B_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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_Gitea_ED_BAK_Folder
CHK_BAK_Disk_B_BAK_Folder
CP_TO_BAK_Disk_B CP_TO_BAK_Disk_B





+ 48
- 47
Gitea_EDbackup-mysql-Auto.sh.SRC Просмотреть файл

#!/bin/bash #!/bin/bash
BAK_Project=Gitea_ED
USER=`whoami` USER=`whoami`
PWFile="/home/$USER/PW/mysql_Gitea_ED.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/Gitea_ED/Script_Gitea_ED/_LOG"
LOG1=/ED/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDbackup-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


Gitea_ED_Bak_Folder="/ED/Gitea_ED/Backup_file"
Gitea_ED_Bak_File_Name=$Gitea_ED_Bak_Folder/backup-mysql-Gitea_ED.gz
Gitea_ED_Bak_File_Name_TS=$Gitea_ED_Bak_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_BAK_Folder="$BAK_Disk_A_Hostname_Folder/Gitea_ED/Backup_file"
BAK_Disk_A_Gitea_ED_Bak_File_Name_TS="$BAK_Disk_A_Gitea_ED_BAK_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_BAK_Folder="$BAK_Disk_B_Hostname_Folder/Gitea_ED/Backup_file"
BAK_Disk_B_Gitea_ED_Bak_File_Name_TS="$BAK_Disk_B_Gitea_ED_BAK_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_Bak_Folder (){
echo -e "\033[32mCheck the local original backup folder exist: \033[35m($Gitea_ED_Bak_Folder) \033[0m"
ls $Gitea_ED_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: $Gitea_ED_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: $Gitea_ED_Bak_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $Gitea_ED_Bak_Folder
sudo chown $USER:$USER $Gitea_ED_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 > $Gitea_ED_Bak_File_Name
# mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $Gitea_ED_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_gitea | gzip > $Gitea_ED_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 $Gitea_ED_Bak_File_Name $Gitea_ED_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($Gitea_ED_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($Gitea_ED_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_Gitea_ED_BAK_Folder (){
echo -e "\033[32mCheck the BAK_Disk_A Gitea_ED backup folder status: \033[35m($BAK_Disk_A_Gitea_ED_BAK_Folder) \033[0m"
ls $BAK_Disk_A_Gitea_ED_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_Gitea_ED_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_Gitea_ED_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $BAK_Disk_A_Gitea_ED_BAK_Folder
sudo chown $USER:$USER $BAK_Disk_A_Gitea_ED_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_Gitea_ED_BAK_Folder (){
echo -e "\033[32mCheck the BAK_Disk_B Gitea_ED backup folder status: \033[35m($BAK_Disk_B_Gitea_ED_BAK_Folder) \033[0m"
ls $BAK_Disk_B_Gitea_ED_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_Gitea_ED_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_Gitea_ED_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $BAK_Disk_B_Gitea_ED_BAK_Folder
sudo chown $USER:$USER $BAK_Disk_B_Gitea_ED_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 $Gitea_ED_Bak_File_Name_TS $BAK_Disk_A_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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 $Gitea_ED_Bak_File_Name_TS $BAK_Disk_B_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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_Gitea_ED_BAK_Folder
#CHK_BAK_Disk_B_BAK_Folder
#CP_TO_BAK_Disk_B #CP_TO_BAK_Disk_B





+ 0
- 347
Gitea_EDbackup-mysql-Auto.sh.TMP Просмотреть файл

#!/bin/bash
USER=`whoami`
PWFile="/home/$USER/PW/mysql_Gitea_ED.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/Gitea_ED/Script_Gitea_ED/_LOG"
LOG1=/ED/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDbackup-mysql-Auto.log

Gitea_ED_Bak_Folder="/ED/Gitea_ED/Backup_file"
Gitea_ED_Bak_File_Name=$Gitea_ED_Bak_Folder/backup-mysql-Gitea_ED.gz
Gitea_ED_Bak_File_Name_TS=$Gitea_ED_Bak_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_BAK_Folder="$BAK_Disk_A_Hostname_Folder/Gitea_ED/Backup_file"
BAK_Disk_A_Gitea_ED_Bak_File_Name_TS="$BAK_Disk_A_Gitea_ED_BAK_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_BAK_Folder="$BAK_Disk_B_Hostname_Folder/Gitea_ED/Backup_file"
BAK_Disk_B_Gitea_ED_Bak_File_Name_TS="$BAK_Disk_B_Gitea_ED_BAK_Folder/backup-mysql-Gitea_ED-$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_Gitea_ED_Bak_Folder (){
echo -e "\033[32mCheck the local original backup folder exist: \033[35m($Gitea_ED_Bak_Folder) \033[0m"
ls $Gitea_ED_Bak_Folder > /dev/null 2>&1
if [[ $? == 0 ]]; then
echo -e " >> \033[34mPass. Backup file saving folder: $Gitea_ED_Bak_Folder exist, go next.\033[0m" | tee -a $LOG1
else
echo -e " >> \033[33mWarning! There is no Backup file saving folder: $Gitea_ED_Bak_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $Gitea_ED_Bak_Folder
sudo chown $USER:$USER $Gitea_ED_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 > $Gitea_ED_Bak_File_Name
# mysqldump -u $DATABASEUser -p$DATABASEPassword $DATABASEName | gzip > $Gitea_ED_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_gitea | gzip > $Gitea_ED_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 $Gitea_ED_Bak_File_Name $Gitea_ED_Bak_File_Name_TS
if [[ $? == 0 ]]; then
echo -e " >> \033[34mPass. Make a copy OK - \033[35m($Gitea_ED_Bak_File_Name_TS) \033[0m" | tee -a $LOG1
else
echo -e " >> \033[41;37mFail. Make a copy failed. Exit\033[0m - \033[35m($Gitea_ED_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_Gitea_ED_BAK_Folder (){
echo -e "\033[32mCheck the BAK_Disk_A Gitea_ED backup folder status: \033[35m($BAK_Disk_A_Gitea_ED_BAK_Folder) \033[0m"
ls $BAK_Disk_A_Gitea_ED_BAK_Folder > /dev/null 2>&1
if [[ $? == 0 ]]; then
echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_A_Gitea_ED_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_Gitea_ED_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $BAK_Disk_A_Gitea_ED_BAK_Folder
sudo chown $USER:$USER $BAK_Disk_A_Gitea_ED_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_Gitea_ED_BAK_Folder (){
echo -e "\033[32mCheck the BAK_Disk_B Gitea_ED backup folder status: \033[35m($BAK_Disk_B_Gitea_ED_BAK_Folder) \033[0m"
ls $BAK_Disk_B_Gitea_ED_BAK_Folder > /dev/null 2>&1
if [[ $? == 0 ]]; then
echo -e " >> \033[34mPass. BAK_Disk's Backup file saving folder: $BAK_Disk_B_Gitea_ED_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_Gitea_ED_BAK_Folder, next will create a new one automatically.\033[0m" | tee -a $LOG1
sudo mkdir -p $BAK_Disk_B_Gitea_ED_BAK_Folder
sudo chown $USER:$USER $BAK_Disk_B_Gitea_ED_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 $Gitea_ED_Bak_File_Name_TS $BAK_Disk_A_Gitea_ED_Bak_File_Name_TS
if [[ $? == 0 ]]; then
echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_A_Gitea_ED_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_Gitea_ED_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 $Gitea_ED_Bak_File_Name_TS $BAK_Disk_B_Gitea_ED_Bak_File_Name_TS
if [[ $? == 0 ]]; then
echo -e " >> \033[34mPass. Make a copy OK - \033[35m($BAK_Disk_B_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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_Gitea_ED_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

+ 16
- 15
Gitea_EDrestore_from_local-mysql.sh Просмотреть файл

#!/bin/bash #!/bin/bash
Gitea_ED_Database_Name=db_gitea
TMP_File=/ED/Gitea_ED/Gitea_EDrestore_from_local.pw
BAK_Project=Gitea_ED
Database_Name=db_ed8_
TMP_File=/ED/${BAK_Project}/${BAK_Project}restore_from_local.pw


read -p "Please enter the user name of mysql $Gitea_ED_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 $Gitea_ED_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/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDrestore_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/Gitea_ED/Backup_file/ -al | grep backup-mysql-Gitea_ED
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/Gitea_ED/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 Gitea_ED 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 $Gitea_ED_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 $Gitea_ED_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 $Gitea_ED_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 $Gitea_ED_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 $Gitea_ED_Database_Name < /ED/Gitea_ED/Backup_file/backup.sql
#mysql -u $edID -p$edPW $Gitea_ED_Database_Name < /ED/Gitea_ED/Backup_file/backup.sql
gunzip -c /ED/Gitea_ED/Backup_file/$DATABASE_BAK_File_NAME | mysql -u $edID -p$edpw $Gitea_ED_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

+ 16
- 15
Gitea_EDrestore_from_local-mysql.sh.SRC Просмотреть файл

#!/bin/bash #!/bin/bash
Gitea_ED_Database_Name=db_gitea
TMP_File=/ED/Gitea_ED/Gitea_EDrestore_from_local.pw
BAK_Project=Gitea_ED
Database_Name=db_ed8_
TMP_File=/ED/${BAK_Project}/${BAK_Project}restore_from_local.pw


read -p "Please enter the user name of mysql $Gitea_ED_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 $Gitea_ED_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/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDrestore_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/Gitea_ED/Backup_file/ -al | grep backup-mysql-Gitea_ED
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/Gitea_ED/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 Gitea_ED 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 $Gitea_ED_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 $Gitea_ED_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 $Gitea_ED_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 $Gitea_ED_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 $Gitea_ED_Database_Name < /ED/Gitea_ED/Backup_file/backup.sql
#/opt/lampp/bin/mysql -u $edID -p$edPW $Gitea_ED_Database_Name < /ED/Gitea_ED/Backup_file/backup.sql
gunzip -c /ED/Gitea_ED/Backup_file/$DATABASE_BAK_File_NAME | /opt/lampp/bin/mysql -u $edID -p$edpw $Gitea_ED_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

+ 0
- 63
Gitea_EDrestore_from_local-mysql.sh.TMP Просмотреть файл

#!/bin/bash
Gitea_ED_Database_Name=db_gitea
TMP_File=/ED/Gitea_ED/Gitea_EDrestore_from_local.pw

read -p "Please enter the user name of mysql $Gitea_ED_Database_Name: " edname
echo -e "ID\t$edname" > $TMP_File
read -p "Please enter the password of mysql $Gitea_ED_Database_Name: " edpw
echo -e "Password\t$edpw" >> $TMP_File

LOG1=/ED/Gitea_ED/Script_Gitea_ED/_LOG/Gitea_EDrestore_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/Gitea_ED/Backup_file/ -al | grep backup-mysql-Gitea_ED
echo
echo -e -n "\033[33mWhich file do you want to restore? \033[0m"
read DATABASE_BAK_File_NAME
ls /ED/Gitea_ED/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 Gitea_ED mysql from dumped files" | tee -a $LOG1

mysql -u $edID -p$edPW -e 'show databases;'
mysql -u $edID -p$edPW -e 'show databases;' | grep $Gitea_ED_Database_Name | wc -l > /dev/null 2>&1
if [[ $? == 0 ]]; then
echo -e "\033[44;37m1/2: The database named $Gitea_ED_Database_Name exist, go next\033[0m" | tee -a $LOG1
else
echo "\033[45;37m1/2: There is no database named $Gitea_ED_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 $Gitea_ED_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 $Gitea_ED_Database_Name < /ED/Gitea_ED/Backup_file/backup.sql
#mysql -u $edID -p$edPW $Gitea_ED_Database_Name < /ED/Gitea_ED/Backup_file/backup.sql
gunzip -c /ED/Gitea_ED/Backup_file/$DATABASE_BAK_File_NAME | mysql -u $edID -p$edpw $Gitea_ED_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

+ 21
- 0
Readme.txt Просмотреть файл

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

+ 11
- 0
_LOG/Gitea_EDbackup-INI.log Просмотреть файл

===== 2019/08/12 01:42:09 ===== ./Gitea_EDbackup-INI.sh =====
Start backup the Script_Gitea_ED 
Pass. Backup file saving folder: /ED/Gitea_ED/Backup_file exist, go next.

Start backup the app.ini of gitea to BAK_Disk_A...
Pass. /var/lib/gitea/custom/conf/app.ini exist 
Pass. Make a /var/lib/gitea/custom/conf/app.ini copy to "/ED/Gitea_ED/Backup_file" and "BAK_Disk_A" good. 
Start backup the app.ini of gitea to BAK_Disk_B...
Pass. /var/lib/gitea/custom/conf/app.ini exist 
Pass. Make a /var/lib/gitea/custom/conf/app.ini copy to "/ED/Gitea_ED/Backup_file" and "BAK_Disk_B" good. 


+ 10
- 0
_LOG/Gitea_EDbackup-Script_Gitea_ED.log Просмотреть файл

===== 2019/08/12 01:31:04 ===== ./Gitea_EDbackup-Script_Gitea_ED-Auto.sh =====
Start backup the Script_Gitea_ED 
Pass. Backup file saving folder: /ED/Gitea_ED/Backup_file exist, go next.
Pass. tar Script_Gitea_ED file OK.
Pass. Make a copy file to "/ED/Gitea_ED/Backup_file". Finished!
Copy the backup files to Backup_Disk_A...
Pass. Copied to BAK_Disk_A. 
Copy the backup files to Backup_Disk_B...
Pass. Copied to BAK_Disk_B. 


+ 4
- 12
_LOG/Gitea_EDbackup-Source_Files.log Просмотреть файл

===== 2019/08/08 02:48:51 ===== ./Gitea_EDbackup-Source_Files-Auto.sh =====
===== 2019/08/12 01:31:33 ===== ./Gitea_EDbackup-Source_Files-Auto.sh =====
Start backup the Gitea_ED Source_Files  Start backup the Gitea_ED Source_Files 
Pass. Backup file saving folder: /ED/Gitea_ED/Backup_file exist, go next. Pass. Backup file saving folder: /ED/Gitea_ED/Backup_file exist, go next.
Pass. tar Source_Files file OK. Pass. tar Source_Files file OK.
Pass. Make a copy file to "/ED/Gitea_ED/Backup_file". Finished! Pass. Make a copy file to "/ED/Gitea_ED/Backup_file". Finished!

Start backup the Gitea_ED Source_Files to BAK_Disk_A 
Pass. Copied to BAK_Disk_A. 

===== 2019/08/08 02:50:47 ===== ./Gitea_EDbackup-Source_Files-Auto.sh =====
Start backup the Gitea_ED Source_Files 
Pass. Backup file saving folder: /ED/Gitea_ED/Backup_file exist, go next.
Pass. tar Source_Files file OK.
Pass. Make a copy file to "/ED/Gitea_ED/Backup_file". Finished!

Start backup the Gitea_ED Source_Files to BAK_Disk_A 
Copy the backup files to Backup_Disk_A...
Pass. Copied to BAK_Disk_A.  Pass. Copied to BAK_Disk_A. 
Copy the backup files to Backup_Disk_B...
Pass. Copied to BAK_Disk_B. 



+ 3
- 69
_LOG/Gitea_EDbackup-mysql-Auto.log Просмотреть файл

>> Pass. mysql dump w/ gzip OK.  >> Pass. mysql dump w/ gzip OK. 
========================================================================================== ==========================================================================================
Starting make a copy with timastamp filename... Starting make a copy with timastamp filename...
>> Pass. Make a copy OK - (/ED/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190807-234740.gz) 
>> Pass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. 
>> Pass. The BAK_Disk_A mount point exist "/BAK_Disk_A"
>> Pass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"
>> Pass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.
>> Warning! There is no BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/Gitea_ED/Backup_file, next will create a new one automatically.
>> Pass. Make a copy OK - (/BAK_Disk_A/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190807-234740.gz) 
>> Pass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. 
>> Pass. The BAK_Disk_B mount point exist "/BAK_Disk_B"
>> Pass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"
>> Pass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.
>> Warning! There is no BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/Gitea_ED/Backup_file, next will create a new one automatically.
>> Pass. Make a copy OK - (/BAK_Disk_B/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190807-234740.gz) 
===== 2019/08/07 23:51:10 ===== ./Gitea_EDbackup-mysql-Auto.sh =====
>> Pass. /home/girl/PW/mysql_Gitea_ED.info exist.
>> Pass. There is a folder "/ED/Gitea_ED/Script_Gitea_ED/_LOG". 
>> Pass. Backup file saving folder: /ED/Gitea_ED/Backup_file exist, go next.
==========================================================================================
 Important! Please check below messages for making sure mysqldump be performed exactly. 
>> Pass. mysql dump w/ gzip OK. 
==========================================================================================
Starting make a copy with timastamp filename...
>> Pass. Make a copy OK - (/ED/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190807-235110.gz) 
>> Pass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. 
>> Pass. The BAK_Disk_A mount point exist "/BAK_Disk_A"
>> Pass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"
>> Pass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.
>> Pass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/Gitea_ED/Backup_file exist, go next.
>> Pass. Make a copy OK - (/BAK_Disk_A/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190807-235110.gz) 
>> Pass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. 
>> Pass. The BAK_Disk_B mount point exist "/BAK_Disk_B"
>> Pass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"
>> Pass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.
>> Pass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/Gitea_ED/Backup_file exist, go next.
>> Pass. Make a copy OK - (/BAK_Disk_B/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190807-235110.gz) 
===== 2019/08/08 02:47:10 ===== ./Gitea_EDbackup-mysql-Auto.sh =====
>> Pass. /home/girl/PW/mysql_Gitea_ED.info exist.
>> Pass. There is a folder "/ED/Gitea_ED/Script_Gitea_ED/_LOG". 
>> Pass. Backup file saving folder: /ED/Gitea_ED/Backup_file exist, go next.
==========================================================================================
 Important! Please check below messages for making sure mysqldump be performed exactly. 
>> Pass. mysql dump w/ gzip OK. 
==========================================================================================
Starting make a copy with timastamp filename...
>> Pass. Make a copy OK - (/ED/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190808-024710.gz) 
>> Pass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. 
>> Pass. The BAK_Disk_A mount point exist "/BAK_Disk_A"
>> Pass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"
>> Pass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.
>> Pass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/Gitea_ED/Backup_file exist, go next.
>> Pass. Make a copy OK - (/BAK_Disk_A/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190808-024710.gz) 
>> Pass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. 
>> Pass. The BAK_Disk_B mount point exist "/BAK_Disk_B"
>> Pass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"
>> Pass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.
>> Pass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/Gitea_ED/Backup_file exist, go next.
>> Pass. Make a copy OK - (/BAK_Disk_B/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190808-024710.gz) 
===== 2019/08/09 03:08:01 ===== /ED/Gitea_ED/Script_Gitea_ED/Gitea_EDbackup-mysql-Auto.sh =====
>> Pass. /home/girl/PW/mysql_Gitea_ED.info exist.
>> Pass. There is a folder "/ED/Gitea_ED/Script_Gitea_ED/_LOG". 
>> Pass. Backup file saving folder: /ED/Gitea_ED/Backup_file exist, go next.
==========================================================================================
 Important! Please check below messages for making sure mysqldump be performed exactly. 
>> Pass. mysql dump w/ gzip OK. 
==========================================================================================
Starting make a copy with timastamp filename...
>> Pass. Make a copy OK - (/ED/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190809-030801.gz) 
>> Pass. Make a copy OK - (/ED/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190812-013017.gz) 
>> Pass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi.  >> Pass. The BAK_Disk_A "/dev/sdb" be detected by lsscsi. 
>> Pass. The BAK_Disk_A mount point exist "/BAK_Disk_A" >> Pass. The BAK_Disk_A mount point exist "/BAK_Disk_A"
>> Pass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A" >> Pass. The BAK_Disk_A (/dev/sdb) be mounted at "/BAK_Disk_A"
>> Pass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next. >> Pass. BAK_Disk_A Hostname folder: /BAK_Disk_A/girl-Home exist, go next.
>> Pass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/Gitea_ED/Backup_file exist, go next. >> Pass. BAK_Disk's Backup file saving folder: /BAK_Disk_A/girl-Home/Gitea_ED/Backup_file exist, go next.
>> Pass. Make a copy OK - (/BAK_Disk_A/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190809-030801.gz) 
>> Pass. Make a copy OK - (/BAK_Disk_A/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190812-013017.gz) 
>> Pass. The BAK_Disk_B "/dev/sda" be detected by lsscsi.  >> Pass. The BAK_Disk_B "/dev/sda" be detected by lsscsi. 
>> Pass. The BAK_Disk_B mount point exist "/BAK_Disk_B" >> Pass. The BAK_Disk_B mount point exist "/BAK_Disk_B"
>> Pass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B" >> Pass. The BAK_Disk_B (/dev/sda) be mounted at "/BAK_Disk_B"
>> Pass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next. >> Pass. BAK_Disk_B Hostname folder: /BAK_Disk_B/girl-Home exist, go next.
>> Pass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/Gitea_ED/Backup_file exist, go next. >> Pass. BAK_Disk's Backup file saving folder: /BAK_Disk_B/girl-Home/Gitea_ED/Backup_file exist, go next.
>> Pass. Make a copy OK - (/BAK_Disk_B/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190809-030801.gz) 
>> Pass. Make a copy OK - (/BAK_Disk_B/girl-Home/Gitea_ED/Backup_file/backup-mysql-Gitea_ED-20190812-013017.gz) 

+ 0
- 10
_LOG/Gitea_EDrestore_from_local-mysql.log Просмотреть файл

======= 2019/08/08 00:32:23 ==========================
2019/08/08 00:32:23 - Starting restore Gitea_ED mysql from dumped files
1/2: The database named db_gitea exist, go next
2/2: Restored mysql. Finished

======= 2019/08/08 00:32:54 ==========================
2019/08/08 00:32:54 - Starting restore Gitea_ED mysql from dumped files
1/2: The database named db_gitea exist, go next
2/2: Restored mysql. Finished


Загрузка…
Отмена
Сохранить