Skip to content

Commit abb202a

Browse files
authored
2923 [Bug] Unable to create tmp directory (hestiacp#3019)
* Delete task when backup fails Prevent spam over email every 5 min * Improve error message+ add link to docs
1 parent 2b6d3b3 commit abb202a

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

bin/v-backup-user

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ if [ -z "$BACKUP" ]; then
160160
fi
161161

162162
# Check if backup folder exists and have the correct permission
163-
if [[ ! -d "$BACKUP" ]]; then
163+
if [[ ! -d "$BACKUP" ]]; then
164164
mkdir -p $BACKUP
165165
fi
166166
if [ "$(stat -c %a "$BACKUP")" != 755 ]; then
@@ -179,9 +179,12 @@ let u_disk=$(($(get_user_disk_usage) * 2))
179179
let v_disk=$(($(stat -f --format="%a*%S" $BACKUP)))/1024/1024
180180

181181
if [ "$u_disk" -gt "$v_disk" ]; then
182+
let u_disk_original=$(get_user_disk_usage)
182183
# Always notify on failure
183-
echo "not enough diskspace available to perform the backup." | $SENDMAIL -s "$subj" "$email" "yes"
184-
check_result "$E_LIMIT" "not enough diskspace available to perform the backup."
184+
echo "Not enough disk space available ($v_disk mb) to perform the backup of $user. ( $u_disk_original mb * 2 = $u_disk mb). https://hestiacp.com/docs/server-administration/backup-restore.html" | $SENDMAIL -s "$subj" "$email" "yes"
185+
# Deleting task from queue
186+
sed -i "/v-backup-user $user /d" $HESTIA/data/queue/backup.pipe
187+
check_result "$E_LIMIT" "not enough disk space available ($v_disk mb) to perform the backup of $user. ( $u_disk_original mb * 2 = $u_disk mb)."
185188
fi
186189

187190
if [ -z "$BACKUP_TEMP" ]; then
@@ -193,6 +196,8 @@ tmpdir=$(mktemp -p $BACKUP_TEMP -d)
193196

194197
if [ "$?" -ne 0 ]; then
195198
echo "Can't create tmp dir $tmpdir" |$SENDMAIL -s "$subj" "$email" "yes"
199+
# Deleting task from queue
200+
sed -i "/v-backup-user $user /d" $HESTIA/data/queue/backup.pipe
196201
check_result "$E_NOTEXIST" "can't create tmp dir"
197202
fi
198203

@@ -331,24 +336,24 @@ if [ -n "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
331336

332337
domain_conf=$(grep "DOMAIN='$domain'" $conf)
333338
parse_object_kv_list_non_eval domain_conf
334-
339+
335340
mkdir -p template/$WEB_SYSTEM/
336341
mkdir template/php-fpm/
337-
338-
if [ $WEB_BACKEND == 'php-fpm' ]; then
342+
343+
if [ $WEB_BACKEND == 'php-fpm' ]; then
339344
cp $HESTIA/data/templates/web/$WEB_SYSTEM/php-fpm/$TPL.tpl template/$WEB_SYSTEM/
340345
cp $HESTIA/data/templates/web/$WEB_SYSTEM/php-fpm/$TPL.stpl template/$WEB_SYSTEM/
341346
cp $HESTIA/data/templates/web/php-fpm/$BACKEND.tpl template/php-fpm/
342347
else
343348
cp $HESTIA/data/templates/web/$WEB_SYSTEM/$TPL.tpl template/$WEB_SYSTEM/
344-
cp $HESTIA/data/templates/web/$WEB_SYSTEM/$TPL.stpl template/$WEB_SYSTEM/
349+
cp $HESTIA/data/templates/web/$WEB_SYSTEM/$TPL.stpl template/$WEB_SYSTEM/
345350
fi
346351
if [ -n "$PROXY_SYSTEM" ] && [ -n "$PROXY" ]; then
347352
mkdir template/$PROXY_SYSTEM
348353
cp $HESTIA/data/templates/web/$PROXY_SYSTEM/$PROXY.tpl template/$PROXY_SYSTEM/
349-
cp $HESTIA/data/templates/web/$PROXY_SYSTEM/$PROXY.stpl template/$PROXY_SYSTEM/
354+
cp $HESTIA/data/templates/web/$PROXY_SYSTEM/$PROXY.stpl template/$PROXY_SYSTEM/
350355
fi
351-
356+
352357
# Backup ssl certificates
353358
if [ "$SSL" = 'yes' ] ; then
354359
cp $HOMEDIR/$user/conf/web/$domain/ssl/$domain.* conf/
@@ -382,7 +387,7 @@ if [ -n "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
382387
# Backup files
383388
if [ "$BACKUP_MODE" = 'zstd' ]; then
384389
tar "${fargs[@]}" -cpf- * | pzstd -"$BACKUP_GZIP" - > $tmpdir/web/$domain/domain_data.tar.zst
385-
else
390+
else
386391
tar "${fargs[@]}" -cpf- * | gzip -"$BACKUP_GZIP" - > $tmpdir/web/$domain/domain_data.tar.gz
387392
fi
388393
done
@@ -508,9 +513,9 @@ if [ -n "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
508513
if [ ${#accounts[@]} -gt 0 ]; then
509514
if [ "$BACKUP_MODE" = 'zstd' ]; then
510515
tar -cpf- "${accounts[@]}" | pzstd -"$BACKUP_GZIP" - > $tmpdir/mail/$domain/accounts.tar.zst
511-
else
516+
else
512517
tar -cpf- "${accounts[@]}" | gzip -"$BACKUP_GZIP" - > $tmpdir/mail/$domain/accounts.tar.gz
513-
fi
518+
fi
514519
fi
515520
done
516521

@@ -558,7 +563,7 @@ if [ -n "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
558563
if [ "$BACKUP_MODE" = 'zstd' ]; then
559564
dumpgz="$tmpdir/db/$database/$database.$TYPE.sql.zst"
560565
else
561-
dumpgz="$tmpdir/db/$database/$database.$TYPE.sql.gz"
566+
dumpgz="$tmpdir/db/$database/$database.$TYPE.sql.gz"
562567
fi
563568

564569
grants="$tmpdir/db/$database/conf/$database.$TYPE.$DBUSER"
@@ -589,9 +594,9 @@ if [ -n "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
589594
if [ "$BACKUP_MODE" = 'zstd' ]; then
590595
pzstd -$BACKUP_GZIP $dump
591596
rm $dump;
592-
else
597+
else
593598
gzip -$BACKUP_GZIP $dump
594-
fi
599+
fi
595600
fi
596601
done
597602

@@ -669,10 +674,10 @@ if [ "$USER" != '*' ]; then
669674
# Backup files and dirs
670675
if [ "$BACKUP_MODE" = 'zstd' ]; then
671676
tar --anchored -cpf- "${fargs[@]}" $udir | pzstd -"$BACKUP_GZIP" - > $tmpdir/user_dir/$udir.tar.zst
672-
else
677+
else
673678
tar --anchored -cpf- "${fargs[@]}" $udir | gzip -"$BACKUP_GZIP" - > $tmpdir/user_dir/$udir.tar.gz
674-
fi
675-
679+
fi
680+
676681
fi
677682
done
678683
set +f
@@ -720,7 +725,7 @@ done
720725
# Removing tmpdir
721726
rm -rf $tmpdir
722727
if [[ "$errorcode" != "0" ]]; then
723-
if [[ "$BACKUP_SYSTEM" =~ "local" ]]; then
728+
if [[ "$BACKUP_SYSTEM" =~ "local" ]]; then
724729
echo -e "$(date "+%F %T") *** Local backup was successfully executed. Remote backup failed ***" |\
725730
tee -a $BACKUP/$user.log
726731
BACKUP_SYSTEM="local"

0 commit comments

Comments
 (0)