Custom Append Path، فشرده‌سازی ZSTD و مدیریت مسیرهای بک‌آپ در DirectAdmin

DirectAdmin امکانات پیشرفته‌ای برای مدیریت مسیرهای بک‌آپ، ساختار پوشه‌ها، فشرده‌سازی فایل‌ها، اسکیپ مسیرها و اجرای اسکریپت‌های سفارشی ارائه می‌دهد. این مقاله نحوه استفاده از Custom Append Path، فعال‌سازی zstd، مدیریت مسیرهای نادیده‌گرفته‌شده، ساخت اسکریپت‌های rename و انتقال بک‌آپ‌ها را به‌صورت کامل و کاربردی توضیح می‌دهد.

DirectAdmin BackupCustom Append PathZSTD Compression

~3 دقیقه مطالعه • بروزرسانی ۸ اسفند ۱۴۰۴

1. Custom Append Path در مسیرهای بک‌آپ


DirectAdmin اجازه می‌دهد مسیرهای بک‌آپ را با استفاده از custom append values سفارشی‌سازی کنید. این قابلیت به شما امکان می‌دهد ساختار نگهداری (Retention) دلخواه ایجاد کنید.


1.1 مثال‌های کاربردی Custom Append Path


بک‌آپ روزانه بدون Append:


نتیجه: هر روز بک‌آپ قبلی overwrite می‌شود.


بک‌آپ روزانه با Append = Weekday:


نتیجه: نگهداری ۷ نسخه (هر روز هفته یک پوشه). مثال:


  • backup-monday
  • backup-tuesday

بک‌آپ هفتگی با Append = Week Number:


نتیجه: نگهداری ۴ نسخه (هر هفته یک پوشه).


بک‌آپ ماهانه با Append = Month:


نتیجه: نگهداری ۱۲ نسخه (هر ماه یک پوشه).


بک‌آپ روزانه با Append = Full Date:


نتیجه: نگهداری نامحدود (ممکن است دیسک پر شود). برای کنترل، می‌توانید یک cron بسازید که فایل‌های قدیمی‌تر از X روز را حذف کند.


1.2 استفاده از strftime برای ساخت مسیرهای دلخواه


Custom Append Path از strftime پشتیبانی می‌کند. مثال‌ها:


  • %F → 2014-03-05
  • %A → Wednesday
  • %B → March
  • %m/%d → 03/28

کاراکترهای مجاز:


  • a-z
  • A-Z
  • 0-9
  • % / - . _

کاراکترهای غیرمجاز:


  • :
  • ,
  • % (در خروجی نهایی)

ابزار ساخت مسیر:


http://strftime.net

1.3 نکته مهم درباره مسیرهای خطرناک


اگر مسیر خارج از پوشه‌های اسکیپ‌شده باشد، ممکن است بک‌آپ وارد حلقه بی‌نهایت شود.


مثال امن:


/home/admin/admin_backups/Wednesday

مثال خطرناک:


/home/admin/admin_backups_Wednesday

این مسیر باعث می‌شود DirectAdmin خودش را دوباره بک‌آپ بگیرد.


2. فعال‌سازی فشرده‌سازی ZSTD برای بک‌آپ‌ها


DirectAdmin از فرمت tar.zst پشتیبانی می‌کند که بسیار سریع‌تر و کم‌حجم‌تر از gzip است.


برای فعال‌سازی:


da config-set zstd 1
da config-set backup_gzip 2
systemctl restart directadmin

3. مسیرهای اسکیپ‌شده در بک‌آپ


برای جلوگیری از حلقه‌های بک‌آپ یا داده‌های غیرضروری، پوشه‌های زیر در مسیر /home/USERNAME اسکیپ می‌شوند:


  • backups
  • user_backups
  • admin_backups
  • usr
  • bin
  • etc
  • lib
  • lib64
  • tmp
  • var
  • sbin
  • dev

3.1 اسکیپ مسیرهای سفارشی


برای اسکیپ مسیرهای دلخواه:


Per User:


/usr/local/directadmin/data/users/USERNAME/skip_backup_home_files.list

Global:


/usr/local/directadmin/data/admin/skip_backup_home_files.list

نمونه مقادیر معتبر:


  • Maildir
  • application_backups

نمونه نامعتبر:


  • some/specific/path.txt

4. افزودن تاریخ به نام فایل‌های بک‌آپ


برای تبدیل نام فایل به فرم:


user.admin.username.2024-10-15-23-32.tar.gz


اسکریپت زیر را ایجاد کنید:


#!/bin/sh
RESELLER=admin
BACKUP_PATH=`echo $file | cut -d/ -f1,2,3,4`
REQUIRED_PATH=/home/$RESELLER/admin_backups

if [ "$BACKUP_PATH" = "$REQUIRED_PATH" ]; then
   if [ "`echo $file | cut -d. -f4,5`" = "tar.gz" ]; then
       NEW_FILE=`echo $file | cut -d. -f1,2,3`.`date +%F-%H-%M`.tar.gz
       if [ -s "$file" ] && [ ! -e "$NEW_FILE" ]; then
           mv $file $NEW_FILE
       fi
   fi
fi
exit 0;

و سپس:


chmod 755 /usr/local/directadmin/scripts/custom/user_backup_success/dated_backup.sh

5. انتقال بک‌آپ‌ها به مسیرهای خارجی (External Mount)


اگر مسیر خارجی فقط توسط root قابل نوشتن باشد، DirectAdmin نمی‌تواند مستقیم در آن بک‌آپ بسازد. راه‌حل: ساخت بک‌آپ در مسیر محلی و سپس انتقال آن.


اسکریپت زیر را ایجاد کنید:


#!/bin/bash
FROM=/home/admin/admin_backups
TO=/mnt/backups/
if [[ "${file}" == ${FROM}* ]]; then
    /bin/mv -f ${file} ${TO}
fi
exit 0;

و سپس:


chmod 755 /usr/local/directadmin/scripts/custom/user_backup_success/move_backups.sh

نوشته و پژوهش شده توسط دکتر شاهین صیامی