Trước đây mình vẫn dùng VPS để chứa các bản backup sử dụng công cụ Duplicity hoặc Rsync. Tuy nhiên, hiện giờ đã có một phương pháp mới hiệu quả hơn, tiết kiệm hơn (Free), đó là sao lưu lên Cloud với Rclone.
Rclone là một công cụ đồng bộ hóa dữ liệu tương tự Rsync nhưng lại được tập trung phát triển chức năng kết nối với các dịch vụ lưu trữ đám mây.
Ưu điểm của việc sử dụng dịch vụ lưu trữ đám mây đó là tốc độ cao (do có server được đặt trên khắp thế giới), an toàn dữ liệu (không lo ngại các vấn đề phần cứng, network) và nhất là hầu hết đều Free. Mình đặc biệt thích những thứ Free!
Rclone hỗ trợ rất nhiều dịch vụ Cloud thông dụng như:
- Google Drive
- Amazon S3
- Openstack Swift / Rackspace cloud files / Memset Memstore
- Dropbox
- Google Cloud Storage
- Amazon Drive
- Microsoft OneDrive
- Hubic
- Backblaze B2
- Yandex Disk
- SFTP
- The local filesystem
Xem thêm test tốc độ upload Rclone.
Giờ thay vì backup đưa lên VPS khác để lưu trữ, mình chuyển sang sử dụng Google Drive, dung lượng miễn phí 15GB, mua thêm cũng khá rẻ, chỉ 45k/tháng là được 100GB rồi. Bạn nào có tài khoản Google Apps miễn phí nữa thì càng tuyệt vời.
Trong bài viết này sẽ có 2 phần chính, 1 là cài đặt Rclone trên VPS, 2 là sử dụng Rclone để upload backup lên Google Drive. Với những cloud service khác các bạn làm tương tự.
Việc tạo file backup toàn bộ dữ liệu VPS mình đã hướng dẫn chi tiết trong bài viết Hướng dẫn tự động sao lưu toàn bộ VPS, bài viết này sẽ chỉ tập trung vào việc cài đặt tự động upload file nén lên Google Drive. Xem thêm hướng dẫn sử dụng Rclone với Google Drive và các dịch vụ cloud khác tại Rclone Docs.
Kịch bản tự động backup như sau:
- Sao lưu toàn bộ database MySQL, mỗi database một file .gz
- Sao lưu toàn bộ code trong thư mục
/home/domain.com/public_html/
- Sao lưu toàn bộ cấu hình Nginx trong thư mục
/etc/nginx/conf.d/
- Tổng hợp tất cả dữ liệu vào 1 folder
- Upload file backup lên Google Drive vào lúc 2h00 sáng
- Tự động xóa file backup trên VPS sau khi upload xong, xóa file backup trên Cloud nếu quá 2 tuần
Giờ bắt đầu vào việc nhé.
Nội dung bài viết
II. Backup VPS lên Cloud với Rclone
1. Tạo kết nối với Google Drive
2. Tạo kết nối với Amazon Drive/One Drive/Yandex
3. Script backup toàn bộ VPS và upload lên Cloud
4. Tạo cronjob tự động backup hàng ngày
I. Hướng dẫn cài đặt Rclone
1. Cài đặt Rclone
Rclone là một chương trình dòng lệnh nên mình sẽ down xuống rồi di chuyển file chạy đến thư mục /usr/sbin/
của VPS để sử dụng sau này.
– Cài đặt bản mới nhất với hệ điều hành Linux 64bit
cd /root/ wget https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip \cp rclone-v*-linux-amd64/rclone /usr/sbin/ rm -rf rclone-*
– Cài đặt bản mới nhất với hệ điều hành Linux 32bit
cd /root/ wget https://downloads.rclone.org/rclone-current-linux-386.zip unzip rclone-current-linux-386.zip \cp rclone-v*-linux-386/rclone /usr/sbin/ rm -rf rclone-*
Link download trực tiếp các phiên bản Rclone.
Giờ bạn có thể sử dụng lệnh rclone
để xem thêm thông tin sử dụng.
2. Một số câu lệnh thông dụng
Các câu lệnh sử dụng Rclone thường có dạng như sau:
rclone command <parameters> <parameters...>
Trong đó command
là câu lệnh, parameters
là các tham số.
Một số lệnh thông dụng khi dùng Rclone:
- rclone config – Cấu hình kết nối đến dịch vụ cloud.
- rclone copy – Copy files từ server đến cloud, skip nếu đã tồn tại dữ liệu.
- rclone sync – Synchronize giữa server và cloud, chỉ update dữ liệu trên cloud mà thôi.
- rclone move – Move files từ server lên cloud.
- rclone delete – Xóa dữ liệu của folder.
- rclone purge – Xóa dữ liệu của folder và toàn bộ nội dung bên trong.
- rclone mkdir – Tạo folder.
- rclone rmdir – Xóa folder trống tại đường dẫn.
- rclone rmdirs – Xóa toàn bộ folder trống tại đường dẫn. Bộ đếm thời gian bao gồm:
- ms – Milliseconds
- s – Seconds
- m – Minutes
- h – Hours
- d – Days
- w – Weeks
- M – Months
- y – Years
- rclone check – Kiểm tra dữ liệu server và cloud có đồng bộ hay không.
- rclone ls – Liệt kê toàn bộ dữ liệu gồm size và path.
- rclone lsd – Liệt kê toàn bộ thư mục.
- rclone lsl – Liệt kê toàn bộ dữ liệu gồm modification time, size và path.
- rclone size – Trả về kích thước thư mục.
Thông tin chi tiết từng lệnh bạn xem thêm ở đây.
II. Backup VPS lên Cloud với Rclone
1. Tạo kết nối với Google Drive
Đầu tiên chúng ta sẽ cấu hình kết nối Rclone với Google Drive, việc này chỉ phải làm 1 lần duy nhất. Kết nối được tạo tên remote
Kết nối SSH với VPS rồi chạy lệnh:
rclone config
Bạn sẽ nhận được thông báo: No remotes found - make a new one
, nhập n
rồi nhấn Enter để tạo kết nối mới.
Ở dòng name bạn nhập remote
để đặt tên cho kết nối, bạn có thể chọn tên nào cũng được.
Một danh sách các dịch vụ cloud xuất hiện, hãy chọn số 11
, Google Drive rồi nhấn Enter.
Ở 2 dòng tiếp theo Client ID
và Client Secret
bạn hãy để trống nhấn Enter.
Mục Scope that rclone should use when requesting access from drive
chọn 1 – drive
Tiếp theo, để trống với ID of the root folder
và Service Account Credentials JSON file path
Khi được hỏi Use auto config?
hãy nhập n
rồi nhấn Enter. Ngay lập tức, Rclone sẽ đưa ra một đường link, bạn có thể click thẳng vào đó hoặc copy rồi paste vào trình duyệt.
Giao diện sẽ xuất hiện như sau:
Nhấn nút Allow để đồng ý, sau đó bạn sẽ nhận được đoạn mã verification code như hình dưới:
Quay trở lại cửa sổ SSH, copy rồi paste code này vào dòng Enter verification code>
rồi nhấn Enter.
Chọn n tức no đối với Configure this as a team drive?
Rclone cần xác nhận thông tin một lần nữa, bạn nhấn y
để đồng ý rồi nhấn q
để thoát khỏi giao diện cấu hình kết nối.
Toàn bộ quá trình cài đặt sẽ tương tự như sau (bôi đỏ là cần nhập input):
rclone config
No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> n name> remote Type of storage to configure. Choose a number from below, or type in your own value 1 / Alias for a existing remote \ "alias" 2 / Amazon Drive \ "amazon cloud drive" 3 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio) \ "s3" 4 / Backblaze B2 \ "b2" 5 / Box \ "box" 6 / Cache a remote \ "cache" 7 / Dropbox \ "dropbox" 8 / Encrypt/Decrypt a remote \ "crypt" 9 / FTP Connection \ "ftp" 10 / Google Cloud Storage (this is not Google Drive) \ "google cloud storage" 11 / Google Drive \ "drive" 12 / Hubic \ "hubic" 13 / Local Disk \ "local" 14 / Mega \ "mega" 15 / Microsoft Azure Blob Storage \ "azureblob" 16 / Microsoft OneDrive \ "onedrive" 17 / OpenDrive \ "opendrive" 18 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH) \ "swift" 19 / Pcloud \ "pcloud" 20 / QingCloud Object Storage \ "qingstor" 21 / SSH/SFTP Connection \ "sftp" 22 / Webdav \ "webdav" 23 / Yandex Disk \ "yandex" 24 / http Connection \ "http" Storage> 11 Google Application Client Id - leave blank normally. client_id> Google Application Client Secret - leave blank normally. client_secret> Scope that rclone should use when requesting access from drive. Choose a number from below, or type in your own value 1 / Full access all files, excluding Application Data Folder. \ "drive" 2 / Read-only access to file metadata and file contents. \ "drive.readonly" / Access to files created by rclone only. 3 | These are visible in the drive website. | File authorization is revoked when the user deauthorizes the app. \ "drive.file" / Allows read and write access to the Application Data folder. 4 | This is not visible in the drive website. \ "drive.appfolder" / Allows read-only access to file metadata but 5 | does not allow any access to read or download file content. \ "drive.metadata.readonly" scope> 1 ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs). root_folder_id> Service Account Credentials JSON file path - leave blank normally. Needed only if you want use SA instead of interactive login. service_account_file> Remote config Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine or Y didn't work y) Yes n) No y/n> n If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offlinexxxx Log in and authorize rclone for access Enter verification code> 4/AABw8gMKPxxxxxxxxxx Configure this as a team drive? y) Yes n) No y/n> n -------------------- [remote] type = drive client_id = client_secret = scope = drive root_folder_id = service_account_file = token = {"access_token":"xxx","token_type":"Bearer","refresh_token":"1/xxx","expiry":"2018-05-16T10:55:03.488381196+07:00"} -------------------- y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y Current remotes: Name Type ==== ==== remote drive e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q> q
Vậy là xong, giờ bạn có thể test với lệnh liệt kê thư mục trong kết nối remote
:
rclone lsd remote:
2. Tạo kết nối với Amazon Drive/One Drive/Yandex
Hiện nay, bên cạnh GG Drive, các Cloud khác cũng dần trở nên phổ biến và có nhiều ưu đãi cho người dùng. Việc tạo kết nối tới Amazon Drive/OneDrive/Yandex tương tự GG Drive, chỉ khác biệt bước lấy access_token.
Lưu ý: Đối với OneDrive cần chọn đúng loại tài khoản cá nhân Personal/doanh nghiệp Bussiness.
Việc xác thực được thực hiện qua remote machine có trình duyệt (ví dụ máy tính của bạn) với lệnh rclone authorize "tên_cloud"
.
Ví dụ cụ thể OneDrive, đến bước xác thực:
Microsoft App Client Id - leave blank normally. client_id> Microsoft App Client Secret - leave blank normally. client_secret> Remote config Choose OneDrive account type? * Say b for a OneDrive business account * Say p for a personal OneDrive account b) Business p) Personal b/p> p Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine y) Yes n) No y/n> n For this to work, you will need rclone available on a machine that has a web browser available. Execute the following on your machine: rclone authorize "onedrive"
Chạy lệnh rclone authorize "onedrive"
tại máy đang sử dụng để lấy access_token.
- Tải Rclone về máy cá nhân (bản cho Windows/OSX) tại Rclone Downloads. Cụ thể, WindowsAMD64 – 64 Bit được rclone-v1.42-windows-amd64. Bên trong có file
rclone.exe
để chạy trên cửa sổ lệnh. Ví dụ đường dẫn fileD:\Rclone/rclone.exe
- Mở ứng dụng CMD của Windows (Run – CMD) rồi chạy lệnh trên với đường dẫn file. Ví dụ,
D:\Rclone\rclone.exe authorize "onedrive"
- Browser bật ra yêu cầu bạn đăng nhập để xác thực. Thành công sẽ hiện thông báo Success. Go back to rclone to continue trên trình duyệt. Quay lại ứng dụng CMD bạn copy access_token để xác thực bên VPS.
C:\Users\HocVPS>D:\Rclone\rclone.exe authorize "onedrive" Choose OneDrive account type? * Say b for a OneDrive business account * Say p for a personal OneDrive account b) Business p) Personal b/p> p If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth Log in and authorize rclone for access Waiting for code... Got code Paste the following into your remote machine ---> {"access_token":"EwD4Aq1DBAAUcSSzoTJJxxx","expiry":"2018-05-16T11:43:25.3184173+07:00""} <---End paste
Chú ý, access_token là một chuỗi kí tự liền mạch nên khi copy từ CMD bạn paste qua trình chỉnh sửa như EmEditor hay Notepad++ để loại bỏ hoàn toàn các kí tự thừa gây cách dòng.
3. Script backup toàn bộ VPS và upload lên Cloud
Trong bài Hướng dẫn tự động sao lưu toàn bộ VPS mình đã chia sẻ script tự động backup VPS, tuy nhiên trong bài này mình sẽ chỉnh sửa lại một chút, để script tự động upload lên Cloud sau khi tạo xong file nén.
– Kết nối Rclone với Cloud tên
remote
, nếu bạn sử dụng kết nối khác thì thay đổi tên trong script– Nếu bạn sử dụng hệ quản trị khác HocVPS thì sử dụng script 2 và sửa thông tin đăng nhập MySQL, đường dẫn thư mục source code và thư mục Nginx Conf
Script này mình viết theo cấu trúc folder trên server do HocVPS Script quản lý.
– Tạo file backup.sh
ở thư mục /root/
nano /root/backup.sh
– Copy toàn bộ nội dung script bên dưới rồi paste vào (áp dụng với HocVPS Script 2.0 trở lên)
# HocVPS Script Plugin - Backup Server and Upload to Cloud #!/bin/bash SERVER_NAME=HOCVPS_BACKUP TIMESTAMP=$(date +"%F") BACKUP_DIR="/root/backup/$TIMESTAMP" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump SECONDS=0 mkdir -p "$BACKUP_DIR/mysql" echo "Starting Backup Database"; databases=`$MYSQL -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql)"` for db in $databases; do $MYSQLDUMP --force --opt $db | gzip > "$BACKUP_DIR/mysql/$db.gz" done echo "Finished"; echo ''; echo "Starting Backup Website"; # Loop through /home directory for D in /home/*; do if [ -d "${D}" ]; then #If a directory domain=${D##*/} # Domain name echo "- "$domain; zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\* #Exclude cache fi done echo "Finished"; echo ''; echo "Starting Backup Nginx Configuration"; cp -r /etc/nginx/conf.d/ $BACKUP_DIR/nginx/ echo "Finished"; echo ''; size=$(du -sh $BACKUP_DIR | awk '{ print $1}') echo "Starting Uploading Backup"; /usr/sbin/rclone move $BACKUP_DIR "remote:$SERVER_NAME/$TIMESTAMP" >> /var/log/rclone.log 2>&1 # Clean up rm -rf $BACKUP_DIR /usr/sbin/rclone -q --min-age 2w delete "remote:$SERVER_NAME" #Remove all backups older than 2 week /usr/sbin/rclone -q --min-age 2w rmdirs "remote:$SERVER_NAME" #Remove all empty folders older than 2 week /usr/sbin/rclone cleanup "remote:" #Cleanup Trash echo "Finished"; echo ''; duration=$SECONDS echo "Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
# HocVPS Script Plugin - Backup Server and Upload to Cloud # Version: 1.1 #!/bin/bash . /etc/hocvps/scripts.conf SERVER_NAME=HOCVPS_BACKUP TIMESTAMP=$(date +"%F") BACKUP_DIR="/root/backup/$TIMESTAMP" MYSQL_USER="root" MYSQL=/usr/bin/mysql MYSQL_PASSWORD=$mariadbpass MYSQLDUMP=/usr/bin/mysqldump SECONDS=0 mkdir -p "$BACKUP_DIR/mysql" echo "Starting Backup Database"; databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql)"` for db in $databases; do $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD $db | gzip > "$BACKUP_DIR/mysql/$db.gz" done echo "Finished"; echo ''; echo "Starting Backup Website"; # Loop through /home directory for D in /home/*; do if [ -d "${D}" ]; then #If a directory domain=${D##*/} # Domain name echo "- "$domain; zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\* #Exclude cache fi done echo "Finished"; echo ''; echo "Starting Backup Nginx Configuration"; cp -r /etc/nginx/conf.d/ $BACKUP_DIR/nginx/ echo "Finished"; echo ''; size=$(du -sh $BACKUP_DIR | awk '{ print $1}') echo "Starting Uploading Backup"; /usr/sbin/rclone move $BACKUP_DIR "remote:$SERVER_NAME/$TIMESTAMP" >> /var/log/rclone.log 2>&1 # Clean up rm -rf $BACKUP_DIR /usr/sbin/rclone -q --min-age 2w delete "remote:$SERVER_NAME" #Remove all backups older than 2 week /usr/sbin/rclone -q --min-age 2w rmdirs "remote:$SERVER_NAME" #Remove all empty folders older than 2 week /usr/sbin/rclone cleanup "remote:" #Cleanup Trash echo "Finished"; echo ''; duration=$SECONDS echo "Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
Lưu ý:
- Script trên sẽ back up toàn bộ database, mỗi database nén thành một file .gz, lưu trong thư mục
mysql
- Mỗi thư mục chứa website được nén lại thành 1 file .zip
- Toàn bộ cấu hình Nginx của các website được lưu trong thư mục
nginx
- SERVER_NAME mặc định là HOCVPS_BACKUP, nếu muốn thay đổi folder trên Cloud bạn hãy thay đổi tham số này.
- Muốn điều chỉnh thời gian xóa file backup, bạn sửa thông số ở dòng
delete
vàrmdirs
. Hiện tại, tự động xóa file/folder cũ hơn 2 tuần.
– Nhấn Ctrl+O, Enter để lưu và Ctrl+X để thoát.
– Phân quyền cho script
chmod +x /root/backup.sh
– Vậy là xong rồi đó, giờ bạn có thể test lại bằng cách chạy lệnh:
/root/backup.sh
Thử kiểm tra trên Cloud xem có thư mục mới với dữ liệu backup chưa nhé, hoặc test với lệnh:
rclone lsl remote:HOCVPS_BACKUP
Nếu không có vấn đề gì sẽ thấy kết quả trả về có một thư mục là ngày hiện tại, bên trong có chứa file nén website (.zip), cấu hình Nginx (.conf) và database (.gz).
4. Tạo cronjob tự động backup hàng ngày
Giờ mình sẽ cho script tự động chạy lúc 2h00 sáng.
EDITOR=nano crontab -e
Dán nội dung sau vào cửa sổ Terminal
0 2 * * * /root/backup.sh > /dev/null 2>&1
Nhấn Ctrl+O, Enter để lưu và Ctrl+X để thoát
Vậy là xong, cứ 2h sáng hàng ngày script sẽ tự động chạy, backup toàn bộ dữ liệu của VPS rồi upload lên Cloud. Đồng thời, dữ liệu backup trên VPS sẽ được xóa luôn sau khi upload xong.
Xem thêm hướng dẫn sử dụng cronjob.
III. Tải file backup từ Cloud xuống VPS
Cách đơn giản nhất để bạn khôi phục lại dữ liệu đó là tải file backup từ Cloud xuống máy tính, rồi tùy theo nhu cầu mà up trở lại lên VPS. Tuy nhiên, nếu muốn tải trực tiếp file backup về VPS, bạn có thể sử dụng luôn Rclone với câu lệnh copy
.
Ví dụ tham khảo:
rclone copy "remote:/HOCVPS_BACKUP/2017-11-01" /root/
Lệnh trên sẽ copy folder 2017-11-01
trong thư mục HOCVPS_BACKUP
trên Cloud về thư mục /root/
của VPS. Tốc độ upload và download từ Cloud đều rất nhanh.
Sau khi copy dữ liệu backup về VPS, bạn tiến hành giải nén file zip, copy thư mục web và nginx về đúng vị trí đồng thời tiến hành import database.
IV. Tổng kết
Công việc backup VPS/Server là việc vô cùng quan trọng, mình đã từng mất toàn bộ dữ liệu không khôi phục được do ấn nhầm Rebuild và chủ quan không backup. Hi vọng với bài hướng dẫn chi tiết này, các bạn sẽ có thêm phương pháp mới tiết kiệm và hiệu quả hơn.
Giờ đến lượt các bạn làm theo đó, cần hỗ trợ gì thêm hoặc góp ý gì cứ comment bên dưới nhé.
mình làm theo và bị lỗi này: Failed to save new token in config file
đã thử nhiều lân mà vẫn bị. Trên vps khác thì ko sao. Vậy phải làm sao ạ
Bạn xóa
remote
cũ rồi config lại được khôngcủng vẫn bị vậy
copy toàn bộ log quá trình thực hiện của bạn qua mình xem cho
đây bạn:
https://pastebin.com/d2dSgWUL
Bạn thử view thư mục, upload/download qua kết nối
remote
đã thiết lập coi. Đồng thời bạn xem file/root/.config/rclone/rclone.conf
có nội dung khôngban cho mình xin câu lệnh, mình ko biết làm
Trong bài viết đó bạn. Liệt kê thư mục, copy thư mục rclone lsd và rclone copy
Còn xem nội dung file thì cat /root/.config/rclone/rclone.conf
cảm ơn bạn, mình biết chổ sai rồi. Do mình làm sai bươc “Script backup toàn bộ VPS và upload lên Cloud”.
nếu backup mỗi ngày thì BW cũng bị tiêu hao theo luôn phải không?
Đúng bạn. BW tính theo upload/download từ VPS mà
Cho mình hỏi sử dụng cái này không thể backup website phải wordpress được ạ.? Sử dụng cứ báo lỗi còn website wordpress thì bình thường
Thông báo lỗi gì vậy bạn. Đây là backup thư mục nên website nào cũng backup đc. Script sẽ backup thư mục
/home/domain/public_html
thôi, đâu quan tâm nội dung bên trong là gìadmin ơi cho mình hỏi ngu câu này xíu ? mình tạo thêm gói VPS mới trên Vultr để test
Ở trên admin có nói là: “Sau khi copy dữ liệu backup về VPS, bạn tiến hành giải nén file zip, copy thư mục web và nginx về đúng vị trí đồng thời tiến hành import database.”
Mình down tất cả từ google driver về sau đó up lên VPS mới thì mình chỉ cần up “code thư mục web” và “import database” là web chạy okie rồi ! mình check kiểm tra không thiếu thứ gì ?
Vậy có cần up file nginx vào đè lên cái file đang có sẵn ở /etc/nginx/conf.d nữa không admin ???
Mình rất băn khoăn mong admin giải đáp ? admin có thể cho mình biết thêm file nginx chắc năng cụ thể là làm gì không ? Cảm ơn admin !
File Nginx Conf dùng để cấu hình riêng cho domain của webserver Nginx. Bạn copy đè nếu cấu hình cũ bạn cần dùng
Vì vốn dĩ khi tạo website bằng HocVPS thì đã tự động tạo Nginx Conf của website đó rồi
Cảm ơn admin ! cho mình hỏi thêm xíu !
Mình hiểu là cài HocVPS stript là cài MariaDB. Vậy có cách nào chuyển đổi file database từ MariaDB –> về mySQL không admin ???
Tức là mình muốn thử test lấy dữ liệu từ Cloud về up lên sharehost chạy apache – control panel mà mình up thì tất nhiên là file SQL nó ko tương thích !
MariaDB là một nhánh của MySQL( một trong những CSDL phổ biến trên thế giới ), là máy chủ cơ sở dữ liệu cung cấp các chức năng thay thế cho MySQL. Nên bạn dùng được tương thích ok nhé
Mình mới đọc tài liệu thấy MariaDB và MySQL khá tương thích với nhau và chính mình cũng import database từ sharehost cũ lên VPS mới cài hocVPS cũng thấy không bị lỗi gì cả !
Mà sao giờ mình chuyển ngược lại bị lỗi vậy admin ? Hình ảnh lỗi: http://i.imgur.com/mpfHN7D.png
Bạn import trên user gốc ban đầu nhé chứ k import vào database khác. Nếu bạn import vào 1 database thì phải là database cùng tên với database ban đầu
admin có thể nói rõ hơn được ko ạ ? Sorry mình vẫn chưa hiểu lắm ‘:(
Vì khi tạo user mới với database mới thì ko thể lấy tên giống như trong file wp-config.php được vì cái gói hosting khi mình mua như bên A2hosting chẳng hạn thì cái tên mình lấy ban đầu nó sẽ lấy những kí tự đầu tiên để mặc định là “tiền tố” luôn.
Mình chỉ có thể thêm vào đằng sau “tiền tố” thôi chứ ko chỉnh sửa tên user theo ý muốn được !
Hình ảnh: http://i.imgur.com/53wIhTI.png
Tức có thể trong thiết lập database chỉ cho import database cùng tên. Ví dụ database bạn tên A, backup lại thì sau này restore chỉ đc restore vào database tên A, không thể restore vào database tên khác
Nên thường lúc restore bằng PHPMyADmin bạn không chọn cụ thể 1 database nào cả mà ấn thẳng vào import luôn
Quá trình import database không cần quan tâm user, do database A chúng ta có thể phân cho user A/B/C/D quản lý đều được
Mình có 2 câu hỏi mong muốn admin giải đáp với :
— “Thử kiểm tra trên Cloud xem có thư mục mới với dữ liệu backup chưa nhé” : Mình vào phần filemanager và kiểm tra chỉ thấy code ở phần public_html còn không thấy file backup hay root gì ở đâu cả ! Nhưng đến hôm sau mình check trên google driver thì đã backup ngon lành ! Vậy admin có thể nói rõ cho mình hiểu là file backup là file ẩn chỉ dùng lệnh mới thấy phải không ?
— Mình muốn làm thủ công đưa dữ liệu từ google driver lên một host hoặc VPS khác admin có thể chỉ chi tiết giúp mình được ko ? hoặc admin có link bài viết nào chi tiết cho mình xin với ?
p/s: Do mình trước đây sài apache nên khi backup dữ liệu chỉ là file dữ liệu web và file sql ko có file nginx ! giờ mình mới cài và sử dụng HOCVPS Script ạ !
Cảm ơn admin !
Mình test với lệnh: rclone lsd remote: nó ra như hình : http://i.imgur.com/6Fb7EnD.png
1. Cloud là GG Driver nhé bạn. Script move backup nên sẽ không còn trên VPS
2. Bạn cài Rclone lên VPS mới để copy từ Cloud về hoặc tải backup lên bằng sFTP/FTP.
admin cho mình hỏi nhiều VPS backup về cùng một tài khoản google driver được ko nhỉ ?
Được bạn nhé. Bạn để auto backup khác giờ ra. VPS này 2h thì VPs kia 4h chẳng hạn
cài Crontab là cài cái nào vậy bạn, mình chưa hiểu, còn mình cài ý như hướng dẫn trên và nó cũng đã kết nối ok với drive của mình rồi, mình xem trong root/backup nó cũng tự động tạo backup lúc 2h sáng như theo hướng dẫn bài tạo backup tự động rồi. vấn đề là không thấy có bản backup được lưu trên drive thôi. bạn xem kết nối như này là ok rồi đúng không? https://www.flickr.com/gp/124129762@N08/2PSAgc
Chưa rồi. Bạn backup thủ công ra kết quả gì
Và bạn đã thực hiện phần
4. Tạo cronjob tự động backup hàng ngày
chưa?Mình tạo tự động backup hàng ngày rồi mà, trong thư mục root/backup của mình đã có file zip backup hàng ngày rồi, vấn đề mình đã kết nối rclone với google drive nhưng nó vẫn không tự động copy từ mục backup lên Drive.
https://www.flickr.com/gp/124129762@N08/A36ePi
Thì mình hỏi bạn backup thủ công hiện thông báo gì mà
Mình thử chạy backup thủ công thấy ok rồi bạn à, kiểm tra trên drive đã có file backup giờ chỉ đợi xem nó có backup như theo lịch đã đặt lúc 2h sáng hay không thôi, cảm ơn bạn nhé.
Mình kết nối hết như hướng dẫn rồi sao ko thấy nó tự động backup lên Drive nhỉ?
Bạn cài crontab chưa? Bạn chạy backup thủ công kết quả gì
0 2 * * * /root/backup.sh > /dev/null 2>&1
A cho e hỏi nếu e muốn để nó 7 ngày mới backup 1 lần thì như nào ạ.
0 2 * * 1 /root/backup.sh > /dev/null 2>&1
Backup vào 2h00 thứ Hai hàng tuầnMấy cái * kia là ứng với những thông số nào vậy a. cảm ơn anh đã hỗ trợ e
https://hocvps.com/tong-quat-ve-crontab/ Bạn đọc và tham khảo nhé
giúp mình với của mình ngon hết mỗi tội nó ko back up mysql
http://bietthusaidong.net/wp-content/uploads/2017/06/Capture.png
Không truy cập được tài khoản root vào MySQL. Bạn đổi pass tk root gần đây à? Bạn thử dùng HocVPS menu xem có tạo được database không
tạo được mình mà mình chỉnh lại rùi
mà lúc back up nó ko có mysql
hôm trước bạn chỉ mình cập nhật lại pass ở /etc/hocvps/scripts.conf
xong tạo được databases rồi mà giờ nó ko backup được mysql
Cả file
/root/.my.cnf
nhé bạnngon rùi thanks bạn rất nhiều
Vừa mua cái Dropbox 200k 2 năm đỡ phải lằng nhằng hehe
Khi em thực hiện lệnh move thì thấy file không bị xoá tại VPS và trên Hubic không thấy file nào cả:
/usr/sbin/rclone move /home/backup/ “remote:/Backup/” >> /var/log/rclone.log 2>&1
Em xem log thì thấy như sau
2017/06/22 15:47:51 ERROR : Attempt 1/3 failed with 1 errors and: Bad Header ‘X-Container-Bytes-Used’: ”: strconv.ParseInt: parsing “”: invalid syntax
2017/06/22 15:47:52 ERROR : Attempt 2/3 failed with 1 errors and: Bad Header ‘X-Container-Bytes-Used’: ”: strconv.ParseInt: parsing “”: invalid syntax
2017/06/22 15:47:53 ERROR : Attempt 3/3 failed with 1 errors and: Bad Header ‘X-Container-Bytes-Used’: ”: strconv.ParseInt: parsing “”: invalid syntax
2017/06/22 15:47:53 Failed to copy: Bad Header ‘X-Container-Bytes-Used’: ”: strconv.ParseInt: parsing “”: invalid syntax
2017/06/22 15:48:40 ERROR : Attempt 1/3 failed with 1 errors and: Bad Header ‘X-Container-Bytes-Used’: ”: strconv.ParseInt: parsing “”: invalid syntax
2017/06/22 15:48:41 ERROR : Attempt 2/3 failed with 1 errors and: Bad Header ‘X-Container-Bytes-Used’: ”: strconv.ParseInt: parsing “”: invalid syntax
2017/06/22 15:48:42 ERROR : Attempt 3/3 failed with 1 errors and: Bad Header ‘X-Container-Bytes-Used’: ”: strconv.ParseInt: parsing “”: invalid syntax
Mong bác chỉ giúp
Vấn đề của Hubic và Rclone liên quan đến ký tự remote. Hiện họ chỉ fix trên bản Beta v1.36-170-g2ca477c5, chưa phát hành chính thức.
Mình cũng không hiểu cụ thể vấn đề, chờ họ fix chính thức nhé.
Bác Luân cho em hỏi chút
Em thực hiện với HubiC nhưng khi gõ lệnh: rclone lsd remote:
Thì ra như sau
5835555412 0001-01-01 00:00:00 3691 default
2823588386 0001-01-01 00:00:00 32 default_segments
Thông báo vậy có bị lỗi gì không bác
Loay hoay mãi mới được. tất cả là tại lúc đặt tên của kết nối không như hướng dẫn là “remote”
Đâm ra lúc chạy lệnh toàn bị lỗi không upload được.
Ad nên chú thích về đoạn Bash backup.sh là thay ‘remote’ bằng tên đặt cho kết nối ấy.
Mình có lưu ý mà 🙂
Script hoạt động với Rclone phiên bản 1.35 trở lên. Kết nối Rclone với Cloud tên remote.
admin cho hỏi
mình đã backup thành công, đã thấy file trên GDrive nhưng không thấy trong /root/backup.
vậy nó nằm ở đâu ta?
Script dùng câu lệnh move nhé bạn, nên file không còn trong
/root/backup
đâuok thanks
Hi ad,
Cho mình hỏi alfm thế nào để có thể config được amazon drive và yandex vậy ạ ?
Cảm ơn ad.
Bạn làm theo phần Tạo kết nối với AmazonDrive/OneDrive/Yandex nhé
File nén website tạo thành nhiều cấp thư mục quá. Mình chỉ muốn tạo 1 cấp thư mục, rồi bên trong chứa các file của website luôn thì có được ko nhỉ
Không được bạn à. Cấu trúc gốc của HocVPS cũng là trong thư mục web là public_html sau đó mới là data web.
Xin chào Admin! Mình xin có chút góp ý kiến này. Đó là mong admin giành chút thời gian rảnh viết một bài hứng dẫn chi tiết cho anh/em newbie cách tải các site đã backup xuống và chuyển sang 1 vps mới. Rất nhiều website của mình đã cài và sử dụng hocvps và cũng backup site lên GG drive..và sắp tới mình có nhu cầu muốn chuyển sang 1 vps mới hoàn toàn mà đang băn khoăn vốn kiến thức di chuyển vps sao cho an toàn nhất! Mong admin sớm có phản hồi.Thanks all!
Hi, mình có phần III. Tải file backup từ Google Drive xuống VPS rồi, bạn có thể dùng để down toàn bộ dữ liệu xuống VPS, sau đó unzip, import db để cài đặt website.
bạn hướng dẫn giúp mình khâu “unzip, import db để cài đặt website.” giúp mình với mình ko biết nhiều về ssh lắm. 🙂
Bạn tham khảo các bài viết này nhé.
https://hocvps.com/cac-cau-lenh-mysql-can-phai-biet/
https://hocvps.com/nen-va-giai-nen-file-tar-gzip-va-zip/
Database bạn có thể dùng PHPMyAdmin import nếu dung lượng thấp
Mình dùng PHPMyAdmin và filemanager úp lên trực tiếp được không bạn. vì các site của mình dung lượng cũng ko nhiều 🙂
PHPMyadmin cho database thì ok chứ Filemanager cho cả data site thì không nên. Bạn down trực tiếp từ drive về VPS cho đỡ mất công cũng như thất thoát dữ liệu do quá trình tải
May quá cảm ơn bác đã hồi âm
Tuy nhiên khi em làm theo bác chỉ thì vẫn không được ạ
Hiện ra thông báo sau
NOTICE: Config file “/root/.config/rclone/rclone.conf” not found – using defaults
If your browser doesn’t open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code…
Mong bác giúp đỡ
Thông báo bên nào bạn? Và lỗi ở bước nào
Bác Luân cho em hỏi với
Khi em chọn Yandex 13
Nếu chon N thì không ra link xác thực gì cả
Nếu chọn Y thì nó ra như thế này
If your browser doesn’t open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code…
Mong bác giúp đỡ
Yandex bạn xác thực giống cách của OneDrive nhé, chạy lệnh
rclone authorize "yandex"
trên máy bạnEm làm xong các bước nhưng đến khi chạy lệnh
rclone lsd remote:
Thì bị như thế này ạ
Failed to create file system for “remote:”: didn’t find section in config file
Mong bác chỉ giúp
Dạo này ondrive tặng dung lượng nhiều sao Luân chưa làm tut cho anh em backup tới onedrive nhỉ 😀
Tạo kết nối với OneDrive Đã update phục vụ đồng bào 😀
Của mình chạy “rclone lsd remote:” ra lỗi này fix sao mod ơi?
NOTICE: Time may be set wrong – time from “www.googleapis.com” is -7h0m0 .844599329s different from this computer
Không có vấn đề gì đâu bạn. Chỉ là thông báo về việc lệch time thôi
Nhưng cả tuần nay vẫn ko thấy backup lên drive bác ạ
Backup thủ công báo gì bạn
/root/backup.sh
Mỗi ngày nó vẫn backup ra 1 file bác ạ, chỉ là nó ko up lên google drive thôi 🙁
Trc gặp case này thì chỉ cảnh báo mà vẫn chạy lệnh mà nhỉ. Bạn check date ra múi giờ ntn, lệch với bên GG không.
Mình suggest bạn delete kết nối rồi chạy cài đặt lại rclone xem sao.
Ko được rồi mod ơi, mình đã xóa kết nối, reset time zoin trên VPS và hết và tao kết nối mới thì hết báo lỗi rồi, nhưng mấy ngày nay vẫn ko thấy backup lên gì cả??? :((
Bạn check kết nối vẫn ok chứ?
rclone lsd remote:
Rồi check backup thủ công thì ntn?Mỗi ngày vẫn tự động Backup mod ạ, chạy bk thủ công theo lệnh trên vẫn ok. Check thì kết nối ok rồi, nó list ra thư mục trên drive luôn. Vậy mà vẫn ko tự động đưa lên.
Kì lạ nhỉ. Bạn thử move thủ công 1 thư mục trong VPs lên cloud được không? Vấn đề hiện giờ chỉ ở việc upload?
/usr/sbin/rclone move thư_mục_vps "remote:thư_mục_trong_cloud"
“Starting Backup Nginx Configuration
Finished
Starting Uploading Backup
Error: unknown command “rmdirs” for “rclone”
Did you mean this?
rmdir
Run ‘rclone –help’ for usage.
unknown command “rmdirs” for “rclone”
Did you mean this?
rmdir
Finished”
Mình nhận được lỗi này giúp mình giải quyết vs ad?
Script thông báo không thấy lệnh
rmdirs
của Rclone. Gặp phải nếu Rclone phiên bản thấpPhiên bản rclone của bạn là bn ? Bạn check bằng
rclone -V
Nếu dưới 1.35 thì bạn chạy lại phần cài đặt để upgrade nhé.
Chào Ad, mình chạy lại cài đặt Rclone để update bản mới nhất xong rồi có cần làm lại bước “Tạo kết nối với Google Drive” ko vậy..hay cứ như vậy rồi chạy backup là xong admin??
Bạn check
rclone config
thấy còn kết nối không. Mình nghĩ là còncảm ơn bạn mình đã fix đc rồi 🙂
Mình đã làm các bước giống như hình, không báo lỗi gì cã, nhưng không thấy thư mục backup tên Drive. không biết nó lưu lên drive chỗ nào nữa ?
Bạn check
rclone lsd remote:
ra kết quả không? Thư mục backup tên HocVPS_BACKUPMinhf không thấy nó tự tạo ra thư mục nào hết
http://i.imgur.com/qNmiin0.jpg
Kết nối thành công rồi mà. Hệ thống bạn là HocVPS? Chạy /root/backup.sh kết quả ntn bạn?
Mình thắc mắc là không biết cài vụ này có làm hao tài nguyên của vps nhiều không nhỉ?
Không bạn à. Và cũng chỉ chạy 1 lần trong ngày.
Anh em thắc mắc chỗ này trong cripts:
MYSQL_PASSWORD=$mariadb_root_password ( vậy pass mình để là vậy luôn hay mình sửa lại theo pass của mình)
MYSQL_PASSWORD=”MyPassword”
VỚi cripts như vầy là mình backup tất cả file trong thư mục /Home phải ko ạ?
# Loop through /home directory
for D in /home/*; do
if [ -d “${D}” ]; then #If a directory
domain=${D##*/} # Domain name
echo “- “$domain;
zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/*** #Exclude cache
fi
done
echo “Finished”;
echo ”;
1. Nếu bạn dùng HocVPS thì không cần sửa gì cả, nếu bạn dùng hệ thống khác thì điền thẳng pass user root của MySQL vào
2. Backup tất cả file thuộc thư mục đáp ứng
/home/*/public_html
Admin cho mình hỏi cái nhé, mình có chạy 4 con VPS cùng backup vào 1 tài khoản google driver, vậy có nên đặt lệnh cronjob cùng chạy vào lúc 2h sáng hàng ngày cho tất cả 4 VPS hay không? hay là nên sửa lại 1 VPS vào 1 giờ khác nhau thì hợp lý hơn? và lệnh cronjob này tính giờ theo giờ của máy chủ VPS đang hoạt động đúng ko Admin ? hay là giờ được báo như trong HocVps-Script ?
1. OK bạn nhé. Tuy vậy, bạn nên sửa script cho 4 VPS backup vào 4 thư mục khác nhau trên Drive. Như HOCVPS_BACKUP1, HOCVPS_BACKUP2, HOCVPS_BACKUP3, HOCVPS_BACKUP4
2. Giờ hệ thống của VPS bạn nhé,
# date
để checkthank bạn!
Cảm ơn bạn đã chia sẻ một tut quá hay, đúng vấn đề mình đang cần. Chỉ có điều cấu trúc vps của mình lại khác một chút. Thư mục của mình là /home/nginx/username/domain/public_html/* hơn nữa mình lại sử dụng nhiều cms khác nhau wp, drupal, prestashop nên trong cùng một vòng for không biết làm thế nào để có thể loại bỏ được hết các thư mục cache cho các cms khác nhau. Nếu có thể gợi ý chỗ này giúp mình? Hiện tại thì mình chỉ có thể backup cả đống lên thôi không loại bỏ được các file cache hix hix
1. Bạn sửa cấu trúc thư mục web trong script.
2.
-x /home/$domain/public_html/wp-content/cache/**\*
giúp loại thư mục cache. Các CMS khác nhau thư mục cache có thể khác nhau nên bạn cấu hình thủ công định danh từng thư mục thôi, ví dụ website WP thì /wp-content/cache/Thanks bạn nhiều, mình sẽ tìm thử xem 🙂
Bạn ơi cho mình hỏi.
VD: mình có 2 thư mục chứ web là
web 1 và web 2 trong home => /home/web1
=> /home/web2
Thì mình sửa cripts sao cho backup tất cả thư mục đó trong /hone vậy?
Thanks bro…!!!
Bạn không cần sửa gì cả. Vì script mình cấu hình thế mà. Backup các thư mục website trong
/home/
# Loop through /home directory
for D in /home/*; do
Mình làm đến bước gõ lệnh:
rclone lsd remote:
Thì nhận được thông báo:
Failed to create file system for “remote:”: didn’t find section in config file
Xin hòi mình tiếp tục như thế nào ạ?
Cảm ơn mod và admin
Hình như bạn chưa tạo config nào là
remote
. Bạnrclone config
ra kết quả gì?À, mình làm được rồi, cảm ơn Phương. Nguyên do là mình quen tay gõ “Remote” :-s
Cảm ơn bạn nhiều
Hi bạn. mình cũng bị lỗi này.. bạn khắc phục như nào vậy. cảm ơn bạn
Lỗi thường do gõ chính tả trong quá trình lệnh. Tên config cần đúng là remote
Bạn
rclone config
ra thông báo gìKhi chạy lệnh /root/backup.sh, em bị báo cái lỗi này là sao nhỉ ?
/root/backup.sh: line 5: /etc/hocvps/scripts.conf: No such file or directory
Starting Backup Database
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
Và để 2-3 hôm nay nó không tự động backup luôn
Mong các anh chỉ giúp !
Hệ thống bạn không phải HocVPS Script. Nếu thế, bạn thay thủ công các đường dẫn web, mật khẩu user root MariaDB.
Script không thấy file lưu thông tin HocVPS script để lấy các thông tin đăng nhập MariaDB
chào ae.
Mình cài hocvps và làm theo cái này điều ok.
Hôm nay web có lỗi nên khôi phục lại. Vào drive google tải file về. Trong đó có file data của web ( filename.gz ) Mình có vào phphadmin import vào. Nó báo thành công. Tuy nhiên không hề thấy hiện ra bảng data nào. Xin ae giúp đỡ. Hoặc có các nào khôi phục dữ liệu web từ ngay file backup trên driver được không?? Trong bài có đoạn này “Tải file backup từ Google Drive xuống VPS”. tuy nhiên mình không hiểu lắm vì có vẻ chỉ là tải code về vps rồi nằm chung ở đâu đó
Bạn gửi file Database qua support@hocvps.com mình test xem. Mình thấy không cần unzip file mà import thẳng được bình thường mà
Chào bạn. Mình muốn backup thư mục Zimbra trong centOS7 lên googgle driver thì như nào ạ! Mình làm như hướng dẫn nhưng không được. Không biết chỉnh sửa chỗ nào! Bạn note cho mình 1 bản được k ạ. tks bạn nhé: fb:https://www.facebook.com/profile.php?id=100005972585948 support mình cái nhé!
Mục Backup Website, bạn chỉnh sửa cho đúng đường dẫn thư mục của site bạn.
Còn nếu thư mục Zimbra của bạn chỉ là thư mục bình thường, không thay đổi hàng ngày thì bạn có thể chạy lệnh
rclone copy thư_mục_trong_vps remote:thư_mục_trong_drive
để copy từ VPS lên DriverCho mình hỏi mình cài đặt xong cấu hình rclone config và sau đó chạy lệnh kết nối với google drive : rclone lsd remote:
thì không thấy thông báo kết nối với drive.
cho mình xin ý kiến tks nhìu.
Bạn chạy lệnh
# rclone lsd remote:
? Nó sẽ liệt kê các thư mục của kết nốiremote
Bạn kiểm tra đúng kết nối chứ?rclone config
xem có liệt kê kết nối đó không?mình muốn backup folder /home/ntbao/www/
thì e điền đoạn cript này đúng chưa vậy
# Loop through /home directory
for D in /home/*; do
if [ -d “${D}” ]; then #If a directory
domain=${D##*/} # Domain name
echo “- “$domain;
zip -r $BACKUP_DIR/$domain.zip /home/ntbao/www/* -q -x /home/$domain/public_html/wp-content/cache/**\* #Exclude cache
fi
done
echo “Finished”;
echo ”;
Bạn chỉ cần thư mục
/www
trong directory à. Thế ok nhéSao của mình chạy backup DB nó hỏi password là sao vậy A, và pass ở đây là pass của root hay pass của DB ạ, nếu nhiều user thì nhập thế nào dc ạ.
Demo : http://prntscr.com/ejryyw
Hệ thống bạn có phải HocVPS không? Nếu không thì bạn phải điền trước pass vào trong script.
Pass đây là user root của MySQL, có quyền truy cập toàn bộ các Database
ah, của mình dùng bên khác, mình đã xử được rồi, nhưng dùng acc da_admin và pass của nó, Bạn có guide nào tạo 1 acc khác chỉ có mỗi quyền backup ko, vì mình cũng đang nghiên cứu vps nên cái biết cái không…
Cám ơn bạn
Chào luân! mình có dùng cách này nhưng file mysql không định dạng file kiểu gì hết . nó chỉ là tên database.gz trong database.gz có tên file nhưng không định dạng SQL. cái này có phải do lỗi VPS mình k bạn
mình có thử đổi qua .sql phpadmin import vào thành công nhưng vẫn k ra bảng. mình sài vpssim.
minh Backup DB vẫn ko ra bảng,
Mình test hê thống HocVPS import thẳng file gz qua PhpMyAdmin vẫn được mà. Không biết hệ thống VPSSIM cấu hình khác đoạn nào không. Bạn kiểm tra lại xem
Không cần giải nén gì cả vì PhpMyadmin chấp nhận tất
File may be compressed (gzip, bzip2) or uncompressed.
Hình như bạn import vào 1 database có sẵn nhưng khác tên đúng không?
File database chỉ có thể import vào database đúng tên hoặc bạn import thẳng vào server (Không chọn database nào mà chọn luôn Import, hiển thị Importing into the current server là OK)
Bản chất do dòng 24 trong file database có dòng
USE `tên_database`;
. Nếu bạn muốn import vào database khác tên thì xóa dòng đó đi rồi import lạiVâng, mình sẽ check lại và báo kq lại ạ
Mình test hê thống HocVPS import thẳng file gz qua PhpMyAdmin vẫn được mà. Không biết hệ thống VPSSIM cấu hình khác đoạn nào không. Bạn kiểm tra lại xem
Không cần giải nén gì cả vì PhpMyadmin chấp nhận tất
File may be compressed (gzip, bzip2) or uncompressed.
Hình như bạn import vào 1 database có sẵn nhưng khác tên đúng không?
Bạn import qua PHPMyAdmin
File database chỉ có thể import vào database đúng tên hoặc bạn import thẳng vào server (Không chọn database nào mà chọn luôn Import, hiển thị Importing into the current server là OK)
Bản chất do dòng 24 trong file database có dòng
USE `tên_database`;
. Nếu bạn muốn import vào database khác tên thì xóa dòng đó đi rồi import lạiEm có 2 trường hợp muốn hỏi? (em dùng VPSSIM)
TH1: Em dùng vpssim đã có chức năng auto backup all data + mysql hết rồi, và nó sẽ lưu data+mysql trong thư mục như này: /home/vpssim.demo/private_html/backup
==> Có cách nào để tạo script tự động upload 1 folder backup kia lên GoogleDrive k?
TH2: (Nếu TH1 không được) Em k dùng chức năng auto backup của VPSSIM mà sẽ sử dụng script auto backup all VPS này của anh, thì phải chĩnh sữa những phần nào để phù hợp có thể áp dụng với cấu trúc VPSSIM.
Mong A hoặc mọi người ai biết hướng dẫn giúp với ạ!
1. Bạn chỉ cần tạo crontab cho mỗi công đoạn upload thôi. Mình không rõ lắm file backup được tạo ra cấu trúc như thế nào. Về ý tưởng, bạn chỉ cần chạy lệnh
#rclone move file/directory "remote:thư mục trên drive"
là sẽ move thư mục backup từ VPS lên Drive2. Bạn cần chỉ đúng các thông số sau:
_Xóa dòng thứ 2
. /etc/hocvps/scripts.conf
_Điền đúng pass user root của MySQL, đoạn
MYSQL_PASSWORD=$mariadbpass
_Back up data: đường dẫn thư mục web, ở VPSSIM cũng là
/home/...
nên vẫn thế._Back up Nginx Conf: chỉ đúng đường dẫn thư mục lưu Nginx conf, ở VPSSIM cũng là
/etc/nginx/conf.d/
nên vẫn thếHi bạn,
Cấu trúc file backup thì đã đc nén .zip & .gz hết rồi, và nó đc lưu toàn bộ ở bên trong Folder Backup đó ok rồi, nên k cần qtam cái đó nữa.
Mình chỉ cần là làm sao để auto upload (copy) 1 folder Backup đó lên Drive thôi (mình backup nhiều VPS khác nữa nên muốn đổi tên folder Backup ==> IP VPS cho dễ nhận biết ở trên Drive).
Mình có ý tưởng như vầy:
Sau khi cài Rclone, thì mình tạo script (code như ở dưới) để nó tự copy folder Backup lên Drive và lưu ở folder tên IPVPS rồi tạo cron cho nó auto chạy vào lúc 2h sáng và tự xóa sau 2w. K biết code ở dưới có đúng k nhỉ. Mong bạn hướng dẫn!
#!/bin/bash
/usr/sbin/rclone copy /home/vpssim.demo/private_html/backup “remote: 123.321.321.321”
# Clean up
/usr/sbin/rclone -q –min-age 2w delete “remote:123.321.321.321” #Remove all backups older than 2 week
/usr/sbin/rclone -q –min-age 2w rmdirs “remote:123.321.321.321” #Remove all empty folders older than 2 week
OK. Bạn để
/home/vpssim.demo/private_html/backup/
. Code backup có tự xóa file ở server không bạn? Script sẽ copy lặp cả file của ngày hôm trước đók biết lỗi gì mà lúc đầu mình test theo lệnh này rclone copy /home/vpssim.demo/private_html/backup “remote: 123.321.321.321” thì ok hết. Mà xóa data backup đi, chạy lại thì nó k hoạt động nữa… (trên SSH thì vẫn báo transfered file ok, mà trên Drive nó k có data nữa).
Nên mình chuyển sang dùng Script trên ok rồi 🙂 Cảm ơn bạn Phương nhiều nhé!
Lemon mình nghĩ là do /usr/sbin/rclone copy /home/vpssim.demo/private_html/backup “remote: 123.321.321.321” lần 1 nó thành công lần 2 trùng thư mục nên nó dừng đấy . bạn thử như thế này thử xem !
# HocVPS Script Plugin – Backup Server and Upload to Google Drive
#!/bin/bash
SERVER_NAME=tên muốn tạo trong driver
BACKUP_DIR=/home/vpssim.demo/private_html/backup
TIMESTAMP=$(date +”%F”)
/usr/sbin/rclone move $BACKUP_DIR “remote:$SERVER_NAME/$TIMESTAMP” >> /var/log/rclone.log 2>&1
# Clean up
rm -rf $BACKUP_DIR
/usr/sbin/rclone -q –min-age 2w delete “remote:$SERVER_NAME” #Remove all backups older than 2 week
/usr/sbin/rclone -q –min-age 2w rmdirs “remote:$SERVER_NAME” #Remove all empty folders older than 2 week
mình chạy lệnh rclone lsd remote:
thì nó chỉ có thông tin như thế này.
http://i.imgur.com/tY836bO.jpg
giống hình của ad
Không biết vậy có đúng chưa ad.
cảm ơn
Directory not found
. Bạn chưa kết nối được với GDrive rồi. Bạn chạy lại# rclone config
để edit lại remote vừa tạo nhéSau ki chạy lệnh /root/backup.sh
Thì mình chạy tiếp lệnh rclone lsd remote:
Và kết quả trả về là : -1 2017-03-03 04:53:23 -1 HOCVPS_BACKUP
( thiếu mất mấy dòng không giống demo của admin ở trên)
Mình lên GDriver thì có file backup web trên đó luôn.
Như vậy là thành công rồi phải không bạn?
Cảm ơn.
Uhm okie rồi đó bạn
Admin, giúp mình với!!
Mình muốn backup tất cả TRỪ 1 website thì mình nên chỉnh file backup lại thế nào nhỉ. Vì có 1 website database khoảng 1gb dữ liệu khoảng 20 GB. backup thường không ổn định lắm, hay bị lỗi down server. !!
Cám ơn rất nhiều. @@
Bạn sửa các phần sau trong script backup:
_Backup Database:
databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql|tên_database_loại_trừ)"`
-Backup Website:
zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\* -x /home/website_của_bạn/\*
Nếu mình chỉ muốn backup 1 db & 1 website thì sửa chỗ đoạn nào bạn Phương nhỉ
Bạn chỉ trực tiếp database và thư mục
Database thì sửa phần dưới, để luôn tên database
for db in $databases; do
$MYSQLDUMP --force --opt --databases $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
Data web thì sửa phần dưới, để luôn tên web
zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\*
Nginx thì khỏi sửa cho đỡ mất công, do dung lượng cũng chẳng bao nhiêu
chỗ $db thay bằng $tên_db
tất cả các chỗ $domain thay bằng tên $tên_web
phải ko bạn P nhỉ
Cảm ơn nhiều bạn đã reply 🙂
Nếu mình chỉ backup 2 website & 2 db trong số nhiều website & db thì nên làm thế nào nhỉ
Vậy bạn làm 2 câu lệnh backup database và 2 câu lệnh backup thư mục website. Định danh luôn không cần dùng biến. Bản chất là dùng MySQLDump với Zip thôi
https://hocvps.com/backup-va-restore-mysql-database-bang-lenh/
Hi bạn,
Mình đặt vấn đề thế này
1. sau khi nén dữ liệu thành file zip và đưuọc up lên drive thì ngay lập tức file zip đó trên server sẽ bị xóa
2. cứ mỗi ngày trêm drive lại co 1 file mới được up lên thì mình chỉ muốn giữ lại 7 file được úp lên gần đây nhất. file thứ 8 up lên sẽ ngay lập tức xóa file thứ 1, file thứ 9 úp lên sẽ xóa file thứ 2 như vậy trên rive của mình luôn duy trì việc giữ lại có 7 file gần nhất mà thôi.
Như vậy, bạn chỉ mình hướng giải quyết được ko
Thanks,
1. Phần “Starting Uploading Backup”, bạn thiết lập
zip $BACKUP_DIR
rồi câu lệnh sau là move như trong script.Phần “Clean up”
rm -rf $BACKUP_DIR
của script đã đảm bảo xóa backup folder trên server rồi.2. Bạn sửa thời gian trong script
2w
thành8d
. Do mỗi ngày đều backup 1 file nên việc xóa file cũ hơn 8 ngày là đáp ứng yêu cầu