Hôm trước mình có chia sẻ một script giúp tự động backup toàn bộ website WordPress hoạt động trên server cài đặt HocVPS Script. Tuy nhiên, hôm nay mình sẽ giới thiệu một bash script khác tốt hơn, backup toàn bộ VPS kèm theo hướng dẫn tạo cronjob tự động chạy hàng ngày luôn.
Đoạn script này tự động backup toàn bộ dữ liệu trên server, bao gồm:
- Toàn bộ database MySQL, mỗi database một file .SQL
- Toàn bộ code trong thư mục
public_html
của domain, có dạng/home/domain.com/public_html/
- Toàn bộ cấu hình Nginx trong thư mục
/etc/nginx/conf.d/
Tất cả dữ liệu sẽ được nén lại thành một file .ZIP và để ở thư mục /root/backup/
, đồng thời tự động xóa những file backup cũ, chỉ giữ lại những file trong vòng 14 ngày trở lại.
Như vậy, bạn hoàn toàn có thể sử dụng script này để di chuyển VPS, hoặc khôi phục bất kỳ phần dữ liệu nào đó. Script mình viết tương thích với cấu trúc thư mục do HocVPS Script quản lý, tuy nhiên bạn cũng có thể chỉnh sửa lại để phù hợp với bất kỳ loại server khác cũng được.
Hiện tại, mình đang sử dụng script này để sao lưu dữ liệu hàng ngày và upload lên Google Drive với Rclone.
Nội dung bài viết
Hướng dẫn tự động sao lưu toàn bộ VPS
1. Tạo bash script backup
– Tạo file backup.sh ở thư mục /root/
nano /root/backup.sh
Tham khảo thêm hướng dẫn sử dụng nano nếu chưa biết dùng.
– Copy toàn bộ nội dung script bên dưới rồi paste vào.
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 1: Áp dụng cho HocVPS Script v2.0 trở lên:
# HocVPS Script Plugin - Backup Server #!/bin/bash . /etc/hocvps/scripts.conf SERVER_NAME=VPS TIMESTAMP=$(date +"%Y-%m-%d_%H-%M") 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 ''; echo "Starting Compress Files"; zip -r /root/backup/$SERVER_NAME-$TIMESTAMP.zip $BACKUP_DIR -q rm -rf $BACKUP_DIR size=$(ls -lah /root/backup/$SERVER_NAME-$TIMESTAMP.zip | awk '{ print $5}') echo "Finished"; echo ''; #Remove older backups (14 days) find /root/backup/ -mindepth 1 -mtime +14 -delete duration=$SECONDS echo "Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
# HocVPS Script Plugin - Backup Server #!/bin/bash . /etc/hocvps/scripts.conf SERVER_NAME=VPS TIMESTAMP=$(date +"%Y-%m-%d_%H-%M") 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 ''; echo "Starting Compress Files"; zip -r /root/backup/$SERVER_NAME-$TIMESTAMP.zip $BACKUP_DIR -q rm -rf $BACKUP_DIR size=$(ls -lah /root/backup/$SERVER_NAME-$TIMESTAMP.zip | awk '{ print $5}') echo "Finished"; echo ''; #Remove older backups (14 days) find /root/backup/ -mindepth 1 -mtime +14 -delete duration=$SECONDS echo "Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
Giải thích thêm:
- Tên file backup được tự động đặt theo ngày giờ hiện tại.
- MYSQL_USER mặc định là root, password được lấy trong file cấu hình /etc/hocvps/scripts.conf.
– 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
Xong, kiểm tra trong thư mục /root/backup/
có file backup .ZIP chưa nhé.
2. 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.
Trong bài tiếp theo, mình sẽ hướng dẫn các bạn cách tự động upload file backup này lên Google Drive để tiết kiệm dung lượng cho VPS. Nhớ đón đọc nhé.
Sao cùng 1 VPS site backup đc site không nhỉ, mỗi lần backup cũng tùy hứng lúc site này lúc site kia, có phải do up lâu nên nó ko up hết lên đc ko ad nhỉ.
Script này có up đâu bạn, lưu trong VPS bạn mà
Hệ thống yếu quá có thể ảnh hưởng quá trình nén toàn bộ. Tuy vậy, bạn backup thủ công gặp thông báo gì?
Sorry mình comment nhầm bài. Mình dùng Rclone – Backup toàn bộ VPS lên Google Drive. Backup ko thông báo lỗi gì, backup đc và hiện dung lượng nhưng khi up lên drive thì site đc site không.
Thì bạn chạy thủ công hiện thông báo gì?
[root@banthoviet home]# /root/backup-data.sh
Starting Backup Website
– domain1
– domain..
Finished
Starting Uploading Backup
Finished
Total 529M, 1 minutes and 45 seconds elapsed.
Nó chỉ hiện thế này thôi bạn.
Như vậy nó backup 529MB. Bạn kiểm tra đã đủ dung lượng toàn bộ backup cũng như so với bản trên drive
up lên drive bị thiếu bạn ạ nên ko biết là do lỗi gì
Vậy bạn up thủ công bằng lệnh rclone lên xem sao. Có thể là do giới hạn của Cloud
hi Hocvps
Không hiểu sao gần 2 tuần gần đây VPS của mình bị chặn không cho tải bất kỳ plugins hay theme nào từ wordpress.
Không biết hocvps có chức năng nào chặn không? Nếu có hướng dẫn mình tắt với nhé
Bên VPS báo không chặn gì cả.
“An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the support forums.”
Hình lỗi như sau http://prntscr.com/k5vtzw
Xin cám ơn!
HocVPS cũng không có cấu hình gì chặn 1 trang web bất kì. Bạn kiểm tra lại các thiết lập của mình nhé
Bạn ping được wordpress.org từ VPs không
Login vào ssh vẫn ping và download file từ wordpress.org bình thường : https://prnt.sc/k5xirh
Mình mua VPS của z.com. bên đó báo không có chặn gì cả!
Vậy từ VPs cũng có chặn gì đâu bạn. Bạn gửi VPS qua support@hocvps.com mình xem cho
Hi Việt Phương
mình có gửi mail lúc sáng, bạn kiểm tra giúp mình nhé.
Cám ơn bạn đã giúp!
Note cho mọi người nhé, việc chèn dòng sau vào wp-config.php là tự chặn kết nối qua HTTP rồi, tương đương chặn kết nối tới WP
define('WP_HTTP_BLOCK_EXTERNAL', true);
Xin chào ạ, vậy em muốn restore bản backup này sang 1 VPS mới thì em nên tham khảo bài nào ạ.
Bạn copy sang VPS mới rồi giải nén ra. Source code thì copy sang thư mục source code
Database thì import theo lệnh https://hocvps.com/backup-va-restore-mysql-database-bang-lenh/
Nginx Conf thì copy vào đúng thư mục của nó
Bạn có thể hướng dẫn Restore kỹ hơn phần này không? Phần database có 2 file tenmien.gz và wordpress.gz mà không biết import như thế nào?
Cảm ơn nhiều.
Hoặc có công cụ nào backup và restore cả vps nhanh gọn không? trả phí cũng dc.
Làm thủ công thì bạn đọc
https://hocvps.com/nen-va-giai-nen-file-tar-gzip-va-zip/
https://hocvps.com/backup-va-restore-mysql-database-bang-lenh/
Bạn đọc wp-config sẽ biết website mình dùng database nào
Còn công cụ thì tùy mã nguồn rồi. Bên WP thì có Duplicator
Mấy VPS trước lúc mình cài hocvps xong up file .tgz lên giải nén bình thường, sáng nay mình có vps mới cũng cài VPS mà giải nén file .tgz ở mục filemanager nó cứ báo lỗi extract-failure và giải nén ra thiếu file là sao ad nhỉ
Bạn giải nén bằng lệnh SSH thì tốt hơn nhé
ad cho em xin cau lenh giai nen file.tgz voi a
tar -xvzf file
nhé bạnCho mình hỏi chút là, mình muốn backup 1 website thành 1 file .zip thì chỉnh đoạn script như nào ạ
Script đang thực hiện như vậy mà, mỗi website là 1 file zip chứ không phải toàn bộ các website vào 1 file zip
Còn nếu bạn chỉ muốn backup 1 website thì bạn điền thằng tên website vào trong script, không phải dùng biến
$domain
nữaCho mình hỏi file này là file nào
. /etc/hocvps/scripts.conf
Mình dùng Centos-Web Panel. Chưa biết điền chỗ này ra sao.
File ý lưu thông tin đăng nhập MySQL. Bạn không dùng HocVPs thì xóa dòng ý đi cũng được. Đồng thời điền luôn thông tin đăng nhập MySQL vào trong nội dung script
Cảm ơn bạn. Mình đã cài và cấu hình xong. Mọi thứ chạy OK. hết 15GB google drive thì thếm 45k/ tháng cũng ngon.
CHO MÌNH XIN CỤ THỂ CÁCH CHẠY 2 LỆNH NÀY VỚI. VÀ, NẾU MÌNH MUỐN TẢI FILE BACKUP ĐÓ VỀ THÌ LÀM NHƯ THẾ NÀO NỮA? CẢM ƠN 😉
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”
Xong, kiểm tra trong thư mục “/root/backup/” có file backup .ZIP chưa nhé.
move file backup vào folder root của web là tải được thôi
hoặc dùng lệnh `curl –upload-file ./filebackup.zip https://transfer.sh/filebackup.zip`
để upload file backup lên server transfer.sh, sau khi upload sẽ ra link để tải file về
Như nguyên văn thôi, lệnh thì
/root/backup.sh
còn nội dung lưu trong/root/backup/
Còn bạn muốn kiểm tra nội dung thư mục thì đọc tổng quan bài này cho sau dễ dùng nhé
https://hocvps.com/lenh-ssh-thong-dung-nhat/
File backup vẫn ở trong VPS chứ có ở chỗ khác đâu mà cần up/dowwn bạn. Chỉ cần duy chuyển và giải nén thôi
@Việt Phương: Mình chạy thử thì ko backup được database. Và hiển thị lỗi như sau
https://drive.google.com/file/d/1jg4LmDIewkxeovqgAeSUHFjnzWnXOPch/view?usp=sharing
bạn có thể chỉ giúp mình fix bug này ko? Cảm ơn bạn nhiều!!!
Sai pass root MySQL, thường gặp do đã thay đổi pass root. Bạn kiểm tra file
/etc/hocvps/scripts.conf
có chưa mật khẩu root, nếu không đăng nhập được bằng mk trong đó thì bạn cần update lại mật khẩu root vào file đó. Bạn dùng script bản gìMình dùng bản v.2.0.2 Pass của mình lấy trong file
/etc/hocvps/scripts.conf
vẫn đăng nhập được. Root của databaseNó có trùng với pass root lưu trong
/root/.my.cnf
không bạn?2 pass này trùng nhau: bởi vì mình ko sửa gì cả vẫn để mặc định. có cách nào tự fix cứng pass vào file backup.sh mà ko cần phải đọc file config ko bạn?
Bạn dùng script 2 ý, điền pass vào trong nội dung script luôn
bạn expand cái script ra luôn cho mọi người dễ nhìn. Mình ko biết là có cái đó. 😀 cảm ơn bạn!
Nó to đùng mà bạn 🙂
Chào bạn. Nếu mình chỉ muốn backup database (Mysql) thì lược bỏ đoạn nào được bạn
Cảm ơn bạn !
Bạn bỏ phần
echo "Starting Backup Website";
....
echo "Starting Backup Nginx Configuration";
cp -r /etc/nginx/conf.d/ $BACKUP_DIR/nginx/
echo "Finished";
echo '';
Cho mình hỏi backup xong cứ download dc 120mb thì nó ngưng 🙁 dùng trên nhiều trình duyệt vẫn thế, ai biết giúp dc ko ạ!
Có thể tốc độ giữa VPS và bạn chậm quá nên quá thời gian truy vấn, dạng request timeout. Bạn chỉnh thông số trong
/etc/php.d/00-hocvps-custom.ini
nhéMong ad giúp với … minh đã làm đi làm lại mấy làn rồi như vẫn bị lỗi như thế này: Khi mình chạy lệnh /root/backup.sh … Nó cứ hỏi Pass như thế này.
Starting Backup Database
Enter password:
Mình nhập pass ko được bấm Enter luôn.. Thì nó thông báo lỗi như thế này:
Starting Backup Database
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
Finished
>>> Các mục Backup còn lại thì bình thường … Chỉ lỗi mỗi cái Database … fix lỗi nó như thế này đây ad 🙁
Chắc bạn dùng script backup lệch với phiên bản của hocvps script. Bạn dùng Script Backup bản 1.8 rồi điền trực tiếp user, password MySQL trong nội dung script. Sau đó bạn lưu script lại và chạy
Mình sử dụng Script 2.0.2 mà nó cứ bắt nhập mật khẩu mysql không tài nào backup được
1. HocVPS script bạn phiên bản nào?
2. Backup script bạn phiên bản nào?
Thực ra cách fix đơn giản nhất là bạn dùng backup script bản 1.8 trở xuống, điền trực tiếp mật khẩu mysql root vào trong nội dung của script
MYSQL_USER="root"
MYSQL=/usr/bin/mysql
MYSQL_PASSWORD=$mariadbpass
Không có script tự động restore 1 bản backup do ng dùng tự chọn hả bạn.
Không có bạn à
script này lỗi phần nhập password backup database nhé, mặc dù đánh đúng khi lấy ra tại hình /etc/hocvps/scripts.conf.
mà nó cứ hiện như thế này hoài
Starting Backup Database
Enter password:
Enter password:
Có phải nhập đâu bạn? Password đã được đọc từ trong script rồi mà
Của mình nó cũng bắt nhập nha. Chả biết nhập pass root hay admin nữa
Bạn thông cảm update lại script nhé. Mình vừa sửa cho phù hợp phiên bản.
Code chạy rất trơn tru, rất tuyệt vời. Nhưng mình vào kiểm tra thì không thấy nó backup database bạn nhỉ?
Lúc chạy lệnh backup xong nó bắt nhập pass word database thì nhập cái gì a nhỉ?
e nhập pass của root vào mà đâu có được.
Bạn dùng HocVPS phiên bản nào? Nếu phiên bản mới nhất thì mình vừa sửa script cho phù hợp, bạn update lại nội dung cho phù hợp nhé
anh ơi em bị lỗi như này là sao anh nhỉ
[root@li1471-240 home]# /root/backup.sh
/root/backup.sh: line 2: $’\r’: command not found
/root/backup.sh: line 4: $’\r’: command not found
: No such file or directorytc/hocvps/scripts.conf
/root/backup.sh: line 6: $’\r’: command not found
/root/backup.sh: line 8: $’\r’: command not found
/root/backup.sh: line 16: $’\r’: command not found
/root/backup.sh: line 18: $’\r’: command not found
Starting Backup Database
/root/backup.sh: line 19: $’\r’: command not found
: No such file or directoryusr/bin/mysql
/root/backup.sh: line 21: $’\r’: command not found
/root/backup.sh: line 22: syntax error near unexpected token `$’do\r”
‘root/backup.sh: line 22: `for db in $databases; do
[root@li1471-240 home]#
Việc copy của bạn khiến tạo kí tự thừa trong scripr rồi. Bạn copy lại toàn bộ script trên nền SSH nhé. Và bạn dùng đúng script cho phiên bản v2.0 trở lên hoặc v1.8 trở xuống chưa
anh ơi, em dùng bản v2.0 anh ạ
Bạn copy lại nội dung script nhé
vâng, cảm ơn anh nhiều,
à, anh có thể tạo file đính kèm để tránh các trường hợp như của em anh nhé 😀
chúc anh 1 ngày vui vẻ
Thôi, cho các bạn làm nhiều cho quen 😀 Dùng VPS cần tìm tòi hơn Hosting 😀 Thế mới thuần thục đc
vâng ạ, cảm ơn anh nhiều nhé
Phần backup mình thấy hocvps Compress Files dạng zip chạy rất lâu, host mình khoảng 10GB data (code + images) mà chờ cả 30p ko thấy xong, nên đành phải thoát ra.
Mình thay lệnh zip bằng lệnh tar thì chạy rất nhanh.
Well noted 🙂 Để mình nghiên cứu xem áp dụng. Do zip cũng phổ thông hơn với mọi người dùng, tiện cho ai cơ bản cũng unzip đc 😀
lúc nào rảnh bạn làm 1 bài nhé
mình xem mấy bài trên mạng thấy khá khó hiểu 😀
thanks
em vừa mới cài học vps nhưng mà cài xong rồi thì chưa biết làm bài nào tiếp theo
bởi vì nhiều bài quá loạn hết cả
anh chỉ em đi từ bài nào đến bài nào với T_T
Cài HocVPS là xong, bạn không cần cải thiện gì thêm cho HocVPS cả. Bạn chỉ cần sử dụng tiếp thôi là OK. Cài đặt site vào và sử dụng thôi:)
muốn thêm user cho linux dùng thay cho user root thì ở bài nào anh
Không có đề cập rồi bạn. Bạn đọc thêm các tài liệu về Linux trên mạng vậy. Còn user quyền root thì bạn tìm hiểu về
sudoer
Trường hợp data của mình khá lớn khoảng 7gb dữ liệu nếu chưa nén thì để auto backup thì khả năng có xảy ra hiện tượng down vps không?
VPS bạn bn GB? Bạn cân nhắc có thể tuần backup 2 lần và chỉ để file backup của 1 tuần. Hoặc up lên drive tránh nặng VPS
https://hocvps.com/rclone/
Ý mính muốn hỏi là data nặng vậy khi backup nó có làm quá tải ram hoặc cpu dẫn đến website load rất chậm ở thời điểm backup không ấy? Mình đang dùng gói 4GB Ram, 2CPU và 60GB ổ cứng tại Vurlt
Cấu hình đó OK bạn à. Bạn test thủ công
/root/backup.sh
cũng sẽ ước chừng được hệ thống lúc backupOk thanks cậu
Admin cho hỏi tính 2h đó là tính theo múi giờ nào?
Giờ của hệ thống bạn à. Bạn check bằng
date
hoặcclock
là biết giờ hiện tạiTại mình ngại đăng nhập ssh vì lâu và tốn thời gian. Trong khi ở chỗ dashroad của wp có mục xuất nhập dữ liệu, nếu chỉ sao lưu bằng mục đó có ổn không?
Câu hỏi nữa, tại sao ko lưu bản back up vào máy tính vậy, mình muốn lưu vào máy tính, tuần chỉ sao 1 lần hoặc khi đăng bài mới. Vậy thì xem bài nào.
Những gì bạn hướng dẫn ở trên là làm trên ssh phải ko hay trên ftp bạn ko nói rõ
_Bạn không đăng nhập thì bạn thiết lập tự động như hướng dẫn thôi, chứ không có cách nào vừa không cài tự động lại tự động backup hàng ngày cả.
Ngoài ra, bản thân WP cũng có các plugin hỗ trợ như Duplicator. Tuy vậy, việc backup thường xuyên bằng plugin gây tốn tài nguyên hơn việc backup ngay trên server. Cũng như script hoạt động để cho mọi website, không riêng gì mã nguồn WP.
_Các dòng lệnh chạy ở SSH nhé bạn. FTP không chạy được dòng lệnh mà dùng quản lý file thôi. Bạn có thể dùng sFTP hoặc FTP để down về hoặc tải lên Drive như hướng dẫn https://hocvps.com/rclone/
Phiền bạn cho mình hỏi thêm câu dài dòng nữa, mình mua thêm 1 VPS Vultr theo hướng dẫn của web bạn rồi chạy hocvps, trên vultr có mục bỏ thêm 1$ thì nó back up tự động cho (nếu xài cái này thì không cần làm các bước như của bạn trong bài này phải không)
Và các file back up tự động của vultr nó lưu ở đâu, mình cứ để ở đó hay phải copy đưa về máy tính? Có khi nào vps nó bay hết sạch mà không thể vào lấy được các file back up đó không? Theo mình hiểu thì khi backup có 2 phần, 1 là nó sao code (giao diện và mọi thứ khung cố định) + bài viết, ảnh, comment (phần động). Cái backup tự động của vultr nó sao cả hai cái hay chỉ cái phần data động thôi vậy bạn?
Backup của Vultr là backup cả VPS bạn nhé. Còn các script backup website, database thôi. Giống như bạn lưu cả Windows hay chỉ lưu phần mềm trong Windows vậy.
Còn website gồm 2 phần, data và database thôi. Data như ảnh, plugin các thứ thì nằm hết trong thư mục web rồi. Các mục, nội dung, cmt thì trong database rồi
Vậy 1 cái VPS của mình để back up tự động 1$/tháng thì vào đâu để lưu cái file đó lại hả bạn?
Còn 1 cái VPS khác thì mình muốn tự back up. Từ trưa đến giờ đăng nhập vào ssh không nổi nên mình không muốn back up tí nào, xài Puty không được, sang Bit cũng ko xong. Nó cứ báo lỗi không truy cập được mà ko rõ vì sao
_Lưu ngay trên hệ thống của Vultr bạn nhé. Nó như bản ghost thôi. Và hình như cũng k có down về mà lưu trên đó, restore lại cũng trên hệ thống Vultr
_Vấn đề dưới là do connect của bạn và VPS chứ đâu liên quan backup nhỉ? Bạn kết nối trên web console của Vultr bình thường chứ (tránh trg hợp VPS đã bị tắt). Ngoài ra, bạn kiểm tra port SSH, user, mật khẩu
Mình tìm đọc nhiều bài về vấn đề này hôm nay và nghiên cứu bài của bạn thì thấy để back up dữ liệu web sau khi cài những thứ kia, hàng ngày vẫn phải đăng nhập vào ssh để back up thủ công hả bạn, nếu mình ko làm bước tự động phía dưới
Vậy còn cái mục sao lưu trong admin wp thì khi nào cần xài nó, tại sao lại ko xài vậy
_Nếu bạn không làm tự động cronjob thì bạn làm thủ công hàng ngày nhé, lênh
/root/backup.sh
_Backup cả thư mục web, bao gồm cả wp-admin rồi mà bạn. Trong bài viết có đề cập sao lưu gì trong admin wp đâu?
Thay đổi 1 tuần backup 1 lần như thế nào vậy admin 🙂
Bạn sửa crontab thành
0 2 * * 1 /root/backup.sh > /dev/null 2>&1
sẽ tự động backup vào thứ 2 hàng tuầnVậy nếu 3 ngày 1 lần backup thì phải làm thế nào vậy bạn?
Bạn xem bài viết này: https://hocvps.com/tong-quat-ve-crontab/
Em phải cài cái dos2unix mới chạy được lệnh /root/backup.sh
Chạy xong thành công nó báo dung lượng file backup 3.5gb
Kiểm tra trong serverinfo thì thấy mất dung lượng tầm 3.5gb thật.
song ra thư mục root/backup/ thì chẳng thấy file nào cả.
chỉ có mỗi thư mục rỗng 2017-01-09_15-50/mysql
không hiểu nó lưu file ở đâu nhỉ các bác ^^!
—–
/root/backup.sh
Starting Backup Database
Finished
Starting Backup Website
– mrsusu.com
Finished
Starting Backup Nginx Configuration
Finished
Starting Compress Files
Finished
Total 3.5G, 3 minutes and 9 seconds elapsed.
À mà em muốn khi backup thì exclude một vài thư mục không cần thiết cho file backup nó nhẹ hơn thì làm thế nào ạ?
Database, Nginx thì toàn file rồi. Backup website có đoạn exclude cache đó
Bạn thêm thư mục cần bỏ nhé:
zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\* #Exclude cache
Tất cả dữ liệu sẽ được nén lại thành một file .ZIP và để ở thư mục
/root/backup/
, đồng thời tự động xóa những file backup cũ, chỉ giữ lại những file trong vòng 14 ngày trở lại.Luân ơi cho mình hỏi Homepage của bạn dùng plugin gì vậy. Thank ^^
Homepage của HocVPS.com á bạn?
Hi bạn, script này dùng đc trong Windows Server không vậy? Mình muốn tạo script tương tự vậy nhưng dùng với IIS, ASP.Net projects và MS Sql Server. Mình search google thì người ta kêu dùng SQL Server Agent. Thanks.
Script chỉ chạy trên CentOS thôi bạn ạ
Mình đang bị báo lỗi “ERROR 1018 (HY000) at line 1: Can’t read dir of ‘.’ (errno: 24)” ở file .sh trên.
Cho mình xin cách khắc phục với
Dành cho bạn nào bị lỗi này
Lỗi do DB nặng quá
https://icesquare.com/wordpress/category/technology/computer-problems-computer-help-pc-support/.
Ko edit được comment @@
Là link này : https://icesquare.com/wordpress/rhel-7-mariadb-mysql-error-1018-hy000-cant-read-dir-of-errno-24/
khi có file Backup rồi, mình restore như nào vậy 🙂 mình tải file Backup về và giải nén trên máy thấy có :
– 1 folder là mysql, trong này có các file nen duôi .gz và mình thử import và database nhưng không được,
– 1 đống file zip theo tên miền chắc là file code của web đúng không. giả sử mình muốn
Giả sử mình mua 1 VPS mới và cài lại từ đầu (cả VPS cũ và mới đều dùng script hocvps) thì mình restore như nào
File trong thư mục mysql là database, mỗi database một file nén .gz
File zip theo tên miền là code, bạn giải nén rồi up lên server hoặc up nguyên file nén rồi giải nén trên server.
Chào Luân !
Luân cho mình hỏi , sắp tới mình sẽ quản lý 2 con Cloud-Vps 1 con 8G và 1 con 1G. Mục đích là chia làm nhiều host chưa các website. Vậy quản lý Cloud-Vps có điều gì khác biệt không ? Bạn có bài viết hướng dẫn cụ thể cho mình xin link với. Cảm ơn bạn 1
Bạn cài thử HocVPS Script dùng thử coi sao nhé: https://hocvps.com/script/
Chứ hỏi chung chung vậy mình cũng chả biết nói sao 😛
Hocscript không có chia host được đâu. Bạn có thể tham khảo Sentora và Vesta, 2 cái này free nhưng cũng hiệu quả lắm.
Còn có nhiều tiền thì xài Direct Admin, chia vô đối đi
web này Anh Luân Trần quản lý luôn ah, Mình cũng tập tành sử dụng VPS rất thích cách viết bài của anh đơn giản dể hiểu.
Hi, cảm ơn bạn 😀
Chào anh, em làm như trên và đang dùng hocvps nhưng lỗi như sau: anh hướng dẫn em chỉnh lại nha anh 😀
Cảm ơn anh
[root@sv1 ~]# /root/backup.sh
: command not foundne 2:
: command not foundne 4:
: No such file or directorytc/hocvps/scripts.conf
: command not foundne 6:
: command not foundne 8:
: command not foundne 16:
: command not foundne 18:
Starting Backup Database
: command not foundne 19:
: No such file or directoryusr/bin/mysql
: command not foundne 21:
‘root/backup.sh: line 22: syntax error near unexpected token `do
‘root/backup.sh: line 22: `for db in $databases; do
Bạn kiểm tra lại /root/backup.sh nhé, có vấn đề gì rồi.
em copy nguyên văn như trên á anh, em có cài hocvps luôn @@
Bạn phải cài đặt thêm dos2unix bằng lệnh
sudo yum install dos2unix
rồi chạy lệnh
dos2unix /root/backup.sh
Thì mới có thể chạy /root/backup.sh được
[root@sv1 ~]# /root/backup.sh
– câu lệnh này chạy sai ngay từ đầu nè: phải là “./ /root/backup.sh” hoặc “sh /root.backup.sh”
nhớ bỏ dấu ngoặc kép đi.
– : No such file or directorytc/hocvps/scripts.conf
Cái này là thông báo lỗi không tìm đc file này, mục đích truy xuất file này là để lấy đc password root của mysql, từ đấy mới chạy được đoạn script extract và zip DB
– : No such file or directoryusr/bin/mysql
Cái này xem lại dịch vụ mysql đã chạy chưa ?
Mình cũng làm các bước theo hướng dẫn, nhưng phải cài đặt thêm dos2unix
bằng lệnh
sudo yum install dos2unix
rồi chạy lệnh
dos2unix /root/backup.sh
Thì mới có thể chạy /root/backup.sh được
Chạy trực tiếp được mà, bạn gặp thông báo lỗi gì thế?
Mình có thể tạo backup các cài đặt spinxsearch, vardish, mount, nói chung là các cài đặt mà mình đã cài khi setup 1 vps mới không?
Bạn thử nghiên cứu code xem, mấy cái bạn nói mình ko rõ nữa
He anh Luân,
Anh nên để phần lưu ý khi sử dụng script này là:
– Không nên sử dụng khi server/vps của bạn có dung lượng mã nguồn quá lớn.
Vì cơ chế ‘zip’ backup mã nguồn directory /home , là nén full và không có cơ chế level compress để giảm dung lượng xuống.
Về phần backup mã nguồn, nếu user ko có nhu cầu download source backup thì nên sử dụng cơ chế ‘increamental backup’, bằng cách này sẽ tiết kiệm dung lượng ổ cứng khá nhiều khi sử dụng tính năng copy hard link inode các file qua các bản backup từng ngày.
Okie cảm ơn em. Code này chỉ là basic thôi, để mọi người dễ làm theo nhất. Còn advanced hơn thì phải chỉnh sửa nhiều.
Hi a Luân,
Cảm ơn bài hướng dẫn của anh, trước giờ em hay dùng BackWPup rồi up lên dropbox. Giờ dùng cách này sẽ ko cần phải cài plugin sẽ nhẹ site hơn. Em mới tìm hiểu VPS, giò muốn restore lại bản backup đó thì làm như thế nào anh? nếu có bài hướng dẫn restore lại ở 1 VPS khác thì hay quá, vì đôi khi mình chuyển VPS qua nhà cung cấp khác hoặc do IP của VPS đó trước đây đc cấp cho 1 ng khác, họ trỏ domain của họ về IP đó rồi, nhưng giờ không dùng domain đó nữa, như vậy IP đó đc 2 domain trỏ về (1 của mình và 1 của ng khác) nên sẽ gây ra duplicate content, ko tốt cho SEO. Em bị 1 trường hợp như vậy và muốn move hết content từ VPS cũ qua 1 VPS mới, nhưng chưa biết restore bản backup như thế nào. Mong anh có 1 bài hướng dẫn. Cảm ơn anh.
Khi restore thì bạn thao tác từng cái một thôi. Có file backup database .SQL thì import vào.
File nén website thì up lên rồi giải nén hoặc giải nén rồi up lên server.
VPS mình dung lượng 20G.
Mình dùng hết 15G rồi còn free có 5G thì ko thể backup được toàn bộ website trên VPS dùng Script này được đúng ko Luân?
Tùy xem thư mục dữ liệu public_html của bạn có nhiều không?
Sử dụng lệnh
du -sh /home/domain.com/public_html/
Của mình nặng chủ yếu là do SQL thôi Luân.
Chứ code thì nhẹ.
Trong quá trình chạy script nếu full bộ nhớ thì sao hả Luân?
SQL thì đơn giản, toàn text thôi nên sau khi nén lại dung lượng không lớn đâu.
Full bộ nhớ thì mình không rõ, chưa gặp nữa.
Luân ơi cho mình hỏi mình đang xài VPS của vultr và sử dụng Sentora để quản lý VPS. Không biết có dùng cách này để back up VPS được không?
Dùng được nhé, nhưng bạn phải tự điều chỉnh lại password root MySQL, đường dẫn chứa code, đường dẫn cấu hình Apache… chứ không dùng thẳng được.
Luân ơi có thể hướng dẫn cụ thể giúp mình được không? Cảm ơn bạn nhiều lắm!
Vụ này bạn tự tìm hiểu thôi, mình comment rất kỹ nội dung script backup rồi.
mình cũng đang quan tâm vì dùng sentora