|
|
@@ -184,7 +184,7 @@ echo "Start with databases"
|
|
|
tput sgr0
|
|
|
|
|
|
echo "Get local databases"
|
|
|
-mysql -e "SHOW DATABASES" >server_dbs
|
|
|
+mysql -e "SHOW DATABASES" > server_dbs
|
|
|
da_db_list=$(ls -1 backup/ | grep ".conf")
|
|
|
function run_da_db() {
|
|
|
for da_db in $da_db_list; do
|
|
|
@@ -203,10 +203,10 @@ function run_da_db() {
|
|
|
mysql -e "CREATE DATABASE $db"
|
|
|
|
|
|
# Preprocess the SQL file to remove problematic lines: https://jira.mariadb.org/browse/MDEV-34203
|
|
|
- grep -vE '^/\*!(999999\\-)' "backup/${database_name}.sql" >"backup/${database_name}_processed.sql" 2>/dev/null
|
|
|
+ grep -vE '^/\*!(999999\\-)' "backup/${database_name}.sql" > "backup/${database_name}_processed.sql" 2> /dev/null
|
|
|
|
|
|
# Import the preprocessed SQL file with --force to ignore errors and continue
|
|
|
- mysql --force "${db}" <"backup/${database_name}_processed.sql"
|
|
|
+ mysql --force "${db}" < "backup/${database_name}_processed.sql"
|
|
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
tput setaf 1
|
|
|
@@ -227,9 +227,9 @@ function run_da_db() {
|
|
|
echo "udb: $db_user"
|
|
|
echo "Password: ${md5}"
|
|
|
|
|
|
- echo "DB='$db' DBUSER='$db_user' MD5='$md5' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='0' SUSPENDED='no' TIME='$time' DATE='$date'" >>/usr/local/hestia/data/users/"$directadmin_user"/db.conf
|
|
|
+ echo "DB='$db' DBUSER='$db_user' MD5='$md5' HOST='localhost' TYPE='mysql' CHARSET='UTF8' U_DISK='0' SUSPENDED='no' TIME='$time' DATE='$date'" >> /usr/local/hestia/data/users/"$directadmin_user"/db.conf
|
|
|
fi
|
|
|
- done <"backup/${da_db}"
|
|
|
+ done < "backup/${da_db}"
|
|
|
|
|
|
# Leave Hestia to restore passwords and create users
|
|
|
tput setaf 2
|
|
|
@@ -274,13 +274,13 @@ for directadmin_domain in $directadmin_domain_list; do
|
|
|
tput sgr0
|
|
|
elif [ -d /home/"${directadmin_user}"/web/"${directadmin_domain}" ]; then
|
|
|
echo "Domain $directadmin_domain added, restoring files"
|
|
|
- echo "$directadmin_domain" >>restored_domains
|
|
|
+ echo "$directadmin_domain" >> restored_domains
|
|
|
rm -f /home/"$directadmin_user"/web/"$directadmin_domain"/public_html/index.html
|
|
|
rm -f /home/"$directadmin_user"/web/"$directadmin_domain"/public_html/robots.txt
|
|
|
|
|
|
public_sync_count=0
|
|
|
- rsync -av domains/"${directadmin_domain}"/public_html/ /home/"$directadmin_user"/web/"$directadmin_domain"/public_html 2>&1 |
|
|
|
- while read file_dm; do
|
|
|
+ rsync -av domains/"${directadmin_domain}"/public_html/ /home/"$directadmin_user"/web/"$directadmin_domain"/public_html 2>&1 \
|
|
|
+ | while read file_dm; do
|
|
|
public_sync_count=$(($public_sync_count + 1))
|
|
|
echo -en "-- $public_sync_count restored files\r"
|
|
|
done
|
|
|
@@ -293,8 +293,8 @@ for directadmin_domain in $directadmin_domain_list; do
|
|
|
else
|
|
|
private_sync_count=0
|
|
|
|
|
|
- rsync -av domains/"${directadmin_domain}"/private_html/ /home/"$directadmin_user"/web/"$directadmin_domain"/private 2>&1 |
|
|
|
- while read file_dm; do
|
|
|
+ rsync -av domains/"${directadmin_domain}"/private_html/ /home/"$directadmin_user"/web/"$directadmin_domain"/private 2>&1 \
|
|
|
+ | while read file_dm; do
|
|
|
private_sync_count=$(($private_sync_count + 1))
|
|
|
echo -en "-- $private_sync_count restored files\r"
|
|
|
done
|
|
|
@@ -334,8 +334,8 @@ if [ -e restored_domains ]; then
|
|
|
tmp_pass=$(generate_password)
|
|
|
"$BIN"/v-add-mail-account "$directadmin_user" "$da_mail_domain" "$da_imap" "$tmp_pass"
|
|
|
if [ "$debug" != 0 ]; then
|
|
|
- rsync -av imap/"${da_mail_domain}"/"${da_imap}"/Maildir/ /home/"${directadmin_user}"/mail/"${da_mail_domain}"/"${da_imap}" 2>&1 |
|
|
|
- while read backup_file_dm; do
|
|
|
+ rsync -av imap/"${da_mail_domain}"/"${da_imap}"/Maildir/ /home/"${directadmin_user}"/mail/"${da_mail_domain}"/"${da_imap}" 2>&1 \
|
|
|
+ | while read backup_file_dm; do
|
|
|
sk_sync=$((sk_sync + 1))
|
|
|
echo -en "-- $sk_sync restored files\r"
|
|
|
done
|
|
|
@@ -379,7 +379,7 @@ if [ -f "backup/crontab.conf" ]; then
|
|
|
fi
|
|
|
|
|
|
# Extract cron job details (handle cases where command contains spaces)
|
|
|
- IFS=' ' read -r min hour day month wday command <<<"$cron_line"
|
|
|
+ IFS=' ' read -r min hour day month wday command <<< "$cron_line"
|
|
|
|
|
|
# Ensure it is a valid cron job line
|
|
|
if ! [[ "$min" =~ ^[\*0-9,-/]+$ && "$hour" =~ ^[\*0-9,-/]+$ && "$day" =~ ^[\*0-9,-/]+$ && "$month" =~ ^[\*0-9,-/]+$ && "$wday" =~ ^[\*0-9,-/]+$ ]]; then
|
|
|
@@ -392,7 +392,7 @@ if [ -f "backup/crontab.conf" ]; then
|
|
|
|
|
|
echo "Adding cron job for user $directadmin_user: $cron_line"
|
|
|
"$BIN"/v-add-cron-job "$directadmin_user" "$min" "$hour" "$day" "$month" "$wday" "$command"
|
|
|
- done <"backup/crontab.conf"
|
|
|
+ done < "backup/crontab.conf"
|
|
|
else
|
|
|
echo "No cron jobs found to restore."
|
|
|
fi
|
|
|
@@ -425,7 +425,7 @@ if [ -d "$domain_base_dir" ]; then
|
|
|
else
|
|
|
echo "Skipping non-alias type for $alias_domain: $alias_type"
|
|
|
fi
|
|
|
- done <"$domain_pointers_file"
|
|
|
+ done < "$domain_pointers_file"
|
|
|
fi
|
|
|
done
|
|
|
else
|