Sao lưu toàn bộ dữ liệu với Command line trên Direct Admin

Bài viết này mình sẽ hướng dẫn bạn có thể Backup Full Data bằng Command trong quá trình sử dụng nếu bạn không muốn thao tác qua giao diện hoặc lí do nào đó.

Bước 1 : Thực hiện lệnh

echo “action=backup&append%5Fto%5Fpath=nothing&database%5Fdata%5Faware=yes&e
mail%5Fdata%5Faware=yes&local%5Fpath=%2Fhome%2Fadmin%2Fadmin%5Fbackup
s&owner=admin&type=admin&value=multiple&when=now&where=local&who=all” >>
/usr/local/directadmin/data/task.queue

Thao tác này bạn sẽ đưa công việc backup của bạn vào hàng đợi để Backup.

Bước 2 : Thực hiện lệnh lần nữa

/usr/local/directadmin/dataskq d200

Lệnh này sẽ tạo tạo ta toàn bộ backup cho tất cả user được lưu vào thư mục /home/admin/admin_backup

Trường hợp mà bạn muốn thao tác Backup cho 1 user mà bạn muốn chỉ định có thể làm như sau :

echo “action=backup&append%5Fto%5Fpath=nothing&database%5Fdata%5Faware=yes&email%5Fdata%5Faware=yes&l
ocal%5Fpath=%2Fhome%2Fadmin%2Fadmin%5Fbackups&owner=admin&select%30=myuser&type=admin&value=multi
ple&when=now&where=local” >> /usr/local/directadmin/data/task.queue

Với “myuser” bạn có thể thay đổi thành tài khoản cần thực hiện Backup.

Trường hợp bạn muốn khôi phục dữ liệu với các bản sao lưu đã tạo :

thực hiện lệnh sau

echo "action=restore&ip%5Fchoice=file&local%5Fpath=%2Fhome%2Fadmin%2Fadmin%5Fbackups&owner=admin&select%30=user%2Eadmin%2Etestuser%2Etar%2Egz&type=admin&value=multiple&when=now&where=local" >> /usr/local/directadmin/data/task.queue

Với mã trên thì user%2Eadmin%2Etestuser%2Etar%2Egz là tên của File mà bạn cần Restore

dưới đây là một tập lệnh cron mẫu cho bạn, hãy chạy dưới quyền root, chạy hàng ngày với cách thức sao lưu / khôi phục, có thể theo tùy chọn của bạn là:

#!/bin/sh

#Who is doing the restore?
OWNER=admin
LOCAL_PATH=/home/${OWNER}/admin_backups

#choice can be 'file' to get it from the backup
#or 'select' which will use the ip set.
IP_CHOICE=select
IP=1.2.3.4

echo -n "action=restore&local_path=${LOCAL_PATH}&owner=${OWNER}&when=now&where=local&type=admin";

if [ "${IP_CHOICE}" = "select" ]; then
       echo -n "&ip_choice=select&ip=${IP}";
else
       echo -n "&ip_choice=${IP_CHOICE}";
fi

cd ${LOCAL_PATH}
COUNT=0
for i in `/bin/ls *.gz`; do
{
       echo -n "&select${COUNT}=$i";
       COUNT=$(( $COUNT + 1 ))
};
done;

echo "";

if [ "${COUNT}" -eq 0 ]; then
       exit 1;
fi

exit 0;

Để chạy được task này bạn sẽ cần tới Cron của mình được cấu hình theo nhu cầu của bạn.

/root/restore_all.sh >> /usr/local/directadmin/data/task.queue