Việc sao lưu dữ liệu website là việc thường phải làm với các webmaster. Khi bạn sử dụng shared hosting thì việc backup đã được các hosting provider tự động thực hiện, tuy nhiên với VPS thì khác. Bạn sẽ phải tự thực hiện backup bằng tay. Trong bài viết này mình sẽ hướng dẫn các bạn thực hiện quá trình tự động sao lưu toàn bộ dữ liệu của VPS thông qua Duplicity.
Duplicity là một công cụ hữu ích để có thể thực hiện remoted backup tự động. Một số ưu điểm của duplicity như:
- Có chế độ Incremental backups (chỉ backup những file mới so với lần trước đó)
- Có nhiều chế độ lưu trữ (SSH, rsync, FTP, Amazon S3, IMAP, Google Drive…)
- Tích hợp chức năng mã hóa.
- Dễ dàng cài đặt và sử dụng.
Trong bài viết này mình sẽ hướng dẫn các bạn backup web https://canhme.com chạy trên VPS CentOS của Cloudzin và lưu trên một VPS khác chuyên chứa dữ liệu (mình sử dụng Ramnode, chỉ cần 128MB RAM (14.48$/năm) là đủ) thông qua ssh, những cái khác các bạn có thể tìm hiểu trên mạng.
Quá trình backup được thực hiện từ động mỗi ngày 1 lần vào 24h đêm.
Cấu trúc dữ liệu
– Toàn bộ dữ liệu được nén và lưu theo ngày trong thư mục /var/backups/. Điều này đảm bảo tốc độ tối ưu nhất và dễ dàng quản lý. Ví dụ:
- /var/backups/2014-03-23/
- db_2014-03-23.sql.gz
- files_2014-03-23.zip
- …
– Trên backup VPS cũng lưu theo ngày trong thư mục /var/backups/domain/. Ví dụ:
- /var/backups/chiasecoupon.com/2014-03-23/
- db_2014-03-23.sql.gz
- files_2014-03-23.zip
- …
Các bạn có thể tự sắp xếp dữ liệu phù hợp với nhu cầu bản thân và add thêm domain tùy ý.
Quy trình tự động sao lưu
- Sử dụng mysqldump để sao lưu database
- Dùng zip nén toàn bộ file lại
- Duplicity chuyển dữ liệu lên backup VPS
Chuẩn bị
– Tạo folder backup trên server và folder ngày hiện tại (mục đích để test, sau này quá trình tự động):
mkdir /var/backups/ mkdir /var/backups/2014-03-23/
– Tạo folder lưu trữ dữ liệu trên backup VPS
mkdir /var/backups/ mkdir /var/backups/chiasecoupon.com/ mkdir /var/backups/chiasecoupon.com/2014-03-23/
Giờ thì hãy tiến hành theo các bước sau, chú ý trong các lệnh mình hard code folder là /2014-03-23/ để các bạn dễ dàng thực hiện theo. Ở bash script cuối cùng thì folder sẽ tự động được tạo theo như thời gian hiện tại của VPS.
Cài đặt duplicity
Sử dụng lệnh sau:
sudo yum install duplicity
Sao lưu MySQL
Sử dụng mysqldump:
mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u TaiKhoan -pMatKhauCuaBan Database | gzip -9 > /var/backups/2014-03-23/db_2014-03-23.sql.gz
Xem thêm Backup và Restore MySQL Database bằng dòng lệnh
Zip dữ liệu
zip -r /var/backups/2014-03-23/files_2014-03-23.zip /home/chiasecoupon.com/public_html/ -q -x /home/chiasecoupon.com/public_html/wp-content/cache/**\*
Trong ví dụ trên mình không nén folder cache, nếu các bạn không muốn thì có thể bỏ đoạn -x /home/chiasecoupon.com/public_html/wp-content/cache/**\*
đi.
Chú ý chỉnh lại đường dẫn chứa website của bạn cho phù hợp.
Nếu như báo lỗi -bash: zip: command not found
thì bạn cần chạy yum install zip
trước.
Duplicity
Ở đây mình dùng một VPS bảo mật chỉ chuyên chứa dữ liệu thôi, duplicity sẽ dùng ssh để gửi lên. Nếu các bạn muốn dùng Amazon S3 hoặc Google Drive thì hãy tìm hiểu trên mạng nhé, cấu trúc dòng lệnh cũng tương tự.
Đầu tiên cần tạo ssh key để kết nối với ssh-keygen
ssh-keygen -C 'Duplicity Backup Key' Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/backup_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/backup_rsa. Your public key has been saved in /root/.ssh/backup_rsa.pub.
Chú ý bước này bạn không điền passphrase nhé, để trống.
Giờ sẽ tiến hành copy key này lên backup VPS.
ssh-copy-id -i /root/.ssh/backup_rsa.pub "-p root@22 12.34.56.78"
Và test lại xem bạn có thể login với key này hay không
ssh -i /root/.ssh/backup_rsa -p 22 root@12.34.56.78
Nếu kết nối thành công, chạy exit
để thoát khỏi backup VPS và tiếp tục cài đặt.
duplicity full --no-encryption --volsize 100 --ssh-options="-oProtocol=2 -oIdentityFile=/root/.ssh/backup_rsa" /var/backups/2014-03-23/ scp://root@12.34.56.78//var/backups/chiasecoupon.com/2014-03-23/
Ở đây mình chọn chế độ backup full chứ không phải incremental. Và tự động split file 100MB nếu dung lượng quá lớn.
Nếu bạn muốn add thêm folder, hãy sử dụng option --include="/path/to/folder"
Nếu toàn bộ quá trình trên bạn thực hiện thành công, giờ hãy gộp tất cả lại vào 1 file bash script và chạy cronjob hàng ngày.
Tạo file script nano /root/backup.sh
với nội dung như bên dưới của mình:
#!/bin/bash { printf "subject:Chia Se Coupon Backup Report\nfrom:admin@chiasecoupon.com\n\n" rm -rf /var/backups/* mkdir /var/backups/$(date +"%Y-%m-%d")/ echo "Starting backup database..." mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u TaiKhoan -pMatKhauCuaBan Database | gzip -9 > /var/backups/$(date +"%Y-%m-%d")/db_$(date +"%H:%M_%d-%m-%Y").sql.gz echo "Starting backup files..." zip -r /var/backups/$(date +"%Y-%m-%d")/files_$(date +"%H:%M_%d-%m-%Y").zip /home/chiasecoupon.com/public_html/ -q -x /home/chiasecoupon.com/public_html/wp-content/cache/**\* echo "Starting duplicity..." duplicity full --no-encryption --volsize 100 --ssh-options="-oProtocol=2 -oIdentityFile=/root/.ssh/backup_rsa" /var/backups/$(date +"%Y-%m-%d")/ scp://root@12.34.56.78//var/backups/chiasecoupon.com/$(date +"%Y-%m-%d")/ } | /usr/sbin/sendmail "admin@chiasecoupon.com"
Như các bạn thấy trong script trên, mình có add thêm lệnh gửi thông báo qua email sau khi chạy backup thành công.
Sau đó lưu file này lại, thêm quyền executive chmod +x /root/backup.sh
, test một lần nữa xem toàn bộ quá trình sao lưu này thành công hay chưa với lệnh /root/backup.sh
Cronjob
Mình sẽ để tác vụ backup tự động thực hiện mỗi ngày bằng cách add thêm vào crontab. Ở đây mình quen sử dụng editor nano nên sẽ sử dụng thay cho vim mặc định.
EDITOR=nano crontab -e
Thêm dòng mới với nội dung:
0 3 * * * /root/backup.sh >/dev/null 2>&1
Đoạn bên trên qui định cứ 3h sáng mỗi ngày sẽ thực hiện backup 1 lần, nếu bạn muốn thay đổi thời gian thì tham khảo thêm bài viết về crontab.
Cuối cùng nhấn Ctrl + O
để lưu lại và Ctrl + X
để thoát.
Như vậy là toàn bộ quá trình sao lưu dữ liệu lên backup VPS server đã được thực hiện tự động.
Lưu ý: có thể bạn cần thay đổi lại timezone thì cronjob mới hoạt động chính xác được.
Restore
Giờ thì chúng ta đã có những bản backup hàng ngày rồi, tuy nhiên làm thế nào để khôi phục lại website khi có vấn đề?
Đầu tiên bạn cần truy cập vào backup VPS server, đến thư mục chứa file backup sẽ thấy rất nhiều file kiểu như sau:
duplicity-full-signatures.20140322T142037Z.sigtar.gz duplicity-full.20140322T142037Z.manifest duplicity-full.20140322T142037Z.vol1.difftar.gz duplicity-full.20140322T142037Z.vol2.difftar.gz duplicity-full.20140322T142037Z.vol3.difftar.gz
Đó là cấu trúc dữ liệu của duplicity, để khôi phục lại như file nén db và files như ban đầu, hãy sử dụng lệnh:
duplicity restore --no-encryption --file-to-restore / file:///var/backups/chiasecoupon.com/2014-03-23 /var/backups/chiasecoupon.com/extract Synchronizing remote metadata to local cache... Copying duplicity-full-signatures.20140322T142037Z.sigtar.gz to local cache. Copying duplicity-full.20140322T142037Z.manifest to local cache. Last full backup date: Sat Mar 22 21:20:37 2014 GnuPG passphrase:
Truy cập vào folder /var/backups/chiasecoupon.com/extract
bạn sẽ thấy toàn bộ dữ liệu đã được giải nén.
Chúc các bạn thực hiện thành công!
Cho mình hỏi chút:
Làm cách nào để backup VPS tại Vultr rồi đem bản backup đó sang DO hoặc Linode để sử dụng vậy?
Cám ơn
Bạn backup những dữ liệu cần thiết rồi chuyển sang DO/Linode thôi chứ không chuyển cả VPS nhé
Vâng cám ơn bạn
cho mình hỏi tự động backup thế này thì nó có tự động xóa backup cũ không? mình muốn nó tự động backup trong 3 ngày mới nhất và tự xóa bản backup cũ tránh đầy HDD
Chuyển toàn bộ lên VPS mới nhé bạn. Không bao gồm xóa dữ liệu backup cũ ở VPS mới
Bài viết này cũng viết khá lâu rồi. Cho mình hỏi ở thời điểm hiện tại, mình dùng Vultr, thì giải pháp nào để backup tối ưu nhất về chi phí và độ an toàn. (Server backup có thể chấp nhận có phí ở mức chấp nhận được.)
Thanks a lot!
Ở thời điểm này, với dữ liệu lớn, bạn dùng Duplicity vẫn tốt nhé. Còn dữ liệu bình thường bạn có thể backup lên Cloud qua Rclone
Server backup nên dùng loại nào, có nên dùng google drive không.
Nếu bạn dùng Cloud như GG Drive thì dùng Rclone như mình bảo đó
Thanks bạn.
Mình tính dùng cái này https://www.vultr.com/pricing/blockstorage/
Chắc là OK nhỉ.
Block Storage chỉ có ở VPS location New Jersey và mục đích của nó là tăng dung lượng cho VPs hiện tại của bạn thôi
Ví dụ con 2.5$/tháng có 20GB thì bạn add thêm 50Gb thành tổng 70GB
Ồ, thanks bạn.
Xin phép mở lại câu hỏi trong này.
Mình thấy DigitalOcean có cái dịch vụ Space với 5$/tháng cho 250GB
https://www.digitalocean.com/products/spaces/
Cái này có phải giống cái BlogStorage của Vultr không nhỉ.
Và mình thấy trong CPanel của Digital Ocean có dịch vụ backup VPS. Cái này có khác với cái duplicity không.
Mình muốn dùng VPS cho khoảng 10 website của mình. Nếu backup VPS thì ko restore cho từng website được nhỉ.
1. Không hẳn. Nó như 1 phân vùng để bạn cất dữ liệu thôi. Tức bạn chỉ có thể upload/download dữ liệu từ phân vùng này lên VPs bạn chứ không thể thao tác gì khác.
2. Backup VPS là cả hệ điều hành. Duplicity là chỉ website, bao gồm database, source code
Chào bác Luân,
Bác có thể hướng dẫn sơ qua cách backup theo WebDAV được không ạ
những bài như này rất khó với newbie.. và cũng hay lỗi với nhiều người.. ad nên làm video cho nhìu người rõ hơn ạ!
Thực ra bài viết này dành cho người dùng advanced thì mới thao tác được bạn ạ, yêu cầu thêm một số kiến thức kĩ thuật nữa.
nếu muốn backup restore trên vps thì cái nào nhanh và dễ dàng cho newbie hả admin
Làm việc với VPS hoàn toàn trên cửa sổ lệnh terminal, không có thao tác chuột gì nên việc video là không cần thiết bạn à. Bạn gặp lỗi gì thì cứ post ra để mọi người cùng xem và giúp đỡ
Anh Luân ơi, cho em hỏi VPS em thuê bên Vultru chỉ còn có 200M sử dụng hết 19G rồi,
Giới hạn là 20G,
Anh cho em hỏi giờ em muốn backup lại web thì phải làm thế nào ạ?
Nếu backup thì dữ liệu trống còn phải hơn 1 nửa mới ổn định được bạn nhé
Căng quá, ko có giải pháp nào khác ạ bạn :((
Bạn kiểm tra xem thư mục nào chiếm dung lượng lớn nhất: https://hocvps.com/cach-tim-file-thu-muc-lon-nhat-tren-linux-unix-bsd/
Nếu dung lượng web của bạn như thế thì có thể rsync đẩy toàn bộ nội dung sang VPS khác dung lượng lớn hơn để lưu trữ, hoặc rclone đẩy lên cloud
Hi, Anh Luân.
Mình đã làm theo cách của Anh nhưng chỉ copy được thư mục, không copy được file zip từ client lên server. Mình đã thử chạy trực lệnh duplicity thư mục cụ thể vẫn không ăn thua, kết quả show như thể này StartTime 1476351776.99 (Thu Oct 13 16:42:56 2016)
EndTime 1476351777.24 (Thu Oct 13 16:42:57 2016)
ElapsedTime 0.25 (0.25 seconds)
SourceFiles 2
SourceFileSize 2448768 (2.34 MB)
NewFiles 2
NewFileSize 2448768 (2.34 MB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 2
RawDeltaSize 2444672 (2.33 MB)
TotalDestinationSizeChange 2375642 (2.27 MB)
Errors 0.
Xin chỉ giúp. Cảm ơn
Mình sắp tới sẽ quản trị 2 con Cloud Vps bạn có bài viết nào hướng dẫn cụ thể cho mình xin link với nhé ! Thanks All
Luân ơi hiện giờ xài vps backup ở đâu thì tốt vậy và giá rẻ vậy?
Mình có xem ở ramnode thấy gói 128M ram giá tốt nhưng mà dung lượng có 12G ít quá trong khi nhu cầu mình dùng nhiều hơn.
Hiện giờ ngon nhất là Google Drive, free mà được 15GB. Đợi mình sắp tới bổ sung bài hướng dẫn chi tiết cho.
Mong Luân sớm ra bài để mình vọc theo với.
Hiện mình đang bị động trong việc backup quá.
Mà ngoài ramnode ra thì còn bên nào dùng làm vps backup tốt ko Luân?
Cảm ơn Luân
Có mấy nhà cung cấp này dùng cũng ok nhé: https://canhme.com/tag/vps-dung-luong-lon/
Luân ơi cho mình hỏi 1 xíu về back up này.
Chắc L cũng biết trên Vultr khi dùng window đó, cụ thể ở đây là win 2008 server, sau khi đã chạy isosetup xong, cài đặt đầy đủ các phần mềm rồi, thì họ dùng snapshot có trong vultr để tạo bản sao, sau đó dùng ngay trên account vultr của họ. Câu hỏi mình muốn hỏi ở đây là: có thể dùng back up, hay snapshot của vultr để tạo ra 1 bản sao win 2008 đã cài đặt đầy đủ phần mềm, sau đó lưu trữ ở 1 server nào khác(vd google drive) giống như mình tạo bản ghost ấy, sau đó mình reg nhiều account vultr, rồi thay vì upload iso trắng, mình upload bản ghost đã cài full soft lên, vậy có được không luân? Và bằng cách nào ạ? Xin cảm ơn!
Mình không sử dụng server Windows thường xuyên nên vụ này rất tiếc không trả lời bạn được rồi. Tuy nhiên bạn có thể thử trực tiếp xem sao, không được thì xóa VPS đi, không tốn kém mấy.
Cám ơn bác Luân nhé!
Các bạn nào biết giới thiệu mình con VPS nào rẻ rẻ để mình backup cái nhỉ!?
Thanks!
Ramnode nhé, quá ngon.
Nếu có nhiều website trên nhiều VPS thì có thể backup qua duy nhất 1 con vps backup được không vậy bạn?
Tất nhiên được nha bạn, làm lại theo hướng dẫn này tiếp.
Có nghĩa là mình nên tạo nhiều file bash rồi cron chúng
Bạn backup dùng Rclone kết nối với VPS khác sẽ tiện hơn
Giúp mình lỗi này với:
BackendException: ssh connection to root@192.0.0.11:22 failed: Authentication failed.
Chào bạn,
Bạn đã sửa được lỗi này chưa
Mình cũng bị giống bạn 🙁
Đã login được vào vps khác bằng rsa key, nhưng lúc thử dùng duplicity để gửi backup file thì lại bị lỗi giống bạn 🙁
Mình loay hay nửa ngày nó cứ lỗi: BackendException: ssh connection to root@107.155.113.27:22 failed: Incompatible ssh peer (no acceptable kex algorithm)
Ae nào chỉ giúp với? Trước đó kết nối sang backup VPS thì đã dược rồi
Chào bạn, mình gặp lại này ạ. Mình chạy trên webvps
ssh-copy-id -i /root/.ssh/backup_rsa.pub “-p 22 123.123.123.123”
/usr/bin/ssh-copy-id: ERROR: failed to open ID file ‘/root/.ssh/backup_rsa.pub’: No such file or directory
xóa dùm, mình quên nhập
Nếu trường hợp mình bị chết VPS chính, chỉ còn backupVPS thì sao Luân?
BackupVPS thì vẫn ở đó bạn?
Cho em hỏi, giờ em chạy vps vultr với rất nhiều site wordpress, muốn backup dữ liệu site1 để clone ra thành site2 thì làm sao vậy anh? Em có xem bên Thachpham thấy có plugin Duplicator, cài thử và thấy Database 66mb, File lên tận 1.5GB. Sau đó tải về và upload lại em thấy ko hiệu quả. Anh có cách nào ko ạ?
Bạn dùng lệnh cp, ví dụ
cp /home/site1.com/public_html /home/site2.com/public_html
để sao chép files ra 1 thư mục cho domain mới. Sau đó dùng plugin WP Migrate DB để tạo database mới cho site2, import là xong.Cảm ơn anh, em đã làm được. Em còn 1 thắc mắc là vps vultr tài nguyên như cpu, ram dùng khoảng bao nhiêu % thì mình nên tạo mới hoặc add thêm phần cứng. em dùng con 1cpu 1GB RAM. Dùng lệnh # top thì thấy memory free tầm 70-80MB, used khoảng hơn 900MB rồi, nhưng vps vẫn chạy khá tốt.
Nếu như thường xuyên >= 70% – 80% thì bạn nên chuẩn bị tinh thần nâng cấp nhé. Chú ý để đọc RAM Free đúng thì bạn cần dùng lệnh
free -m
, đọc dòng thứ 2: https://hocvps.com/xem-luong-ram-da-dung-tren-linux-dung-cach/nếu như có nhiều vps mà chỉ muốn dùng 1 vps có được không hay là mỗi vps chính chỉ được dùng 1 vps backup vậy ah?
Do mình tự cài đặt cấu hình nên thích làm gì thì làm. Có thể đẩy bản backup từ các VPS khác nhau về 1 VPS lưu trữ thôi cũng được.
Mình hay sử dụng CodeGuard để backup hàng ngày. Rất tiện và dễ dàng khi restore
CodeGuard cũng được, nhưng nếu thích mày mò thì nên tự sao lưu bằng script như thế này, tiết kiệm hơn rất nhiều. Mình có order 1 VPS ở Ramnode, giá chỉ 12.75$/năm mà backup tẹt ga luôn :D.
Codeguard nếu đăng ký đại lý được thì giá rất rẻ bạn à. Gói 5GB chỉ có 16$ / năm
Tự nhiên mấy bữa nay bị thông báo lỗi như này 🙁 Chạy mấy tháng nay ngon lành muh 🙁 Luân biết chỉ giúp tớ 🙁
Starting backup database…
Starting backup files…
Starting duplicity…
Import of duplicity.backends.dpbxbackend Failed: No module named dropbox
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
sftp put of /tmp/duplicity-jtcfjw-tempdir/mktemp-mLgAkK-42 (as duplicity-full.20150927T182028Z.vol41.difftar.gz) failed: (Try 1 of 5) Will retry in 10 seconds.
sftp put of /tmp/duplicity-jtcfjw-tempdir/mktemp-mLgAkK-42 (as duplicity-full.20150927T182028Z.vol41.difftar.gz) failed: (Try 2 of 5) Will retry in 10 seconds.
sftp put of /tmp/duplicity-jtcfjw-tempdir/mktemp-mLgAkK-42 (as duplicity-full.20150927T182028Z.vol41.difftar.gz) failed: (Try 3 of 5) Will retry in 10 seconds.
sftp put of /tmp/duplicity-jtcfjw-tempdir/mktemp-mLgAkK-42 (as duplicity-full.20150927T182028Z.vol41.difftar.gz) failed: (Try 4 of 5) Will retry in 10 seconds.
sftp put of /tmp/duplicity-jtcfjw-tempdir/mktemp-mLgAkK-42 (as duplicity-full.20150927T182028Z.vol41.difftar.gz) failed: (Try 5 of 5) Will retry in 10 seconds.
Bạn check lại dung lượng ổ cứng còn không 😀
Cả 2 ông còn dư cả mấy chục gb luôn Luân ơi :'(
Bạn thử lại từng dòng lệnh, xem nó lỗi ở đâu?
Cái này nó chuyển sang VPS phụ đến Vol41 là nó báo lỗi k chuyển nữa Luân ạ 🙁
Mà cho tớ hỏi sao mình không sài scp chuyển file backup sang VPS backup luôn nhỉ 😀
Vậy do đường truyền kết nối giữa 2 VPS rồi?
Mình dùng duplicity vì nó có thể chia nhỏ dữ liệu ra để gửi, và đảm bảo dữ liệu không bị lỗi trong quá trình gửi. SCP mà đứt 1 cái là coi như xong.
Còn một giải pháp nữa mình đã chuyển sang không dùng duplicity nữa đó là Rsync, bạn tìm hiểu thử coi nhé.
Em muốn nó tự động xóa đi sau khi backup chuyển nên VPS của Ramnode thì dùng lệnh gì anh ơi?
Tùy backup bạn để ở đâu, ví dụ ở đây là:
rm -rf /var/backups/*
Cho mình hỏi với. Nếu vps nhiều site thì cũng phải làm lần lượt từng site như trên à ? Mình có 50 site cho 7 cái vps thì backup kiểu gì nhanh đc Luân ? mình đang sử dụng hocvps để quản lý vps. THanks Luân
Qui trình thì lằng nhằng, nhưng thực chất chốt lại chỉ là nội dung file backup.sh thôi bạn.
Backup toàn bộ site trên VPS có khi lại nhanh đó.
– Để backup toàn bộ database thì bạn dùng lệnh:
mysqldump -u root -pmypass --all-databases > alldatabases.sql
(https://hocvps.com/cac-cau-lenh-mysql-can-phai-biet/)– Còn nén file thì thay vì bạn sử dụng
/home/chiasecoupon.com/public_html/
, lúc này dùng/home/*/public_html/
thì nó sẽ nén toàn bộ folder public_html của tất cả các siteỒ vậy à Luân ? Cảm ơn nhiều, để mình thử xem sao nha. Hôm qua thử dùng puty winscp rồi click all chọn Taz nén rồi down về thấy ok lắm.
Mình thử mà nó báo là -bash: syntax error near unexpected token `)’
Dòng đó là gì thế bạn?
Thì mình paste mysqldump -u root -pmypass –all-databases > alldatabases.sql vào ZOC
Tất nhiên là đã thay pass tương ứng mà nó báo thế Luân ạ
Chắc bạn copy sai rồi, làm thử lại đi :))
Không đc, vừa làm lại nó vẫn báo thế. Có cần cái lệnh gì mà cài sqldump k ?
Mình vừa thử ok nhé, bạn check lại phát nữa đi :)) (nhìn cho thật kỹ)
mysqldump -u root -pmypass --all-databases > alldatabases.sql
Chắc do mình để ký tự trong pass nên nó báo lỗi. Mình dùng lệnh change pass mà cũng k đc
À thế thì bạn đổi pass root rồi chạy lại lệnh là được: https://hocvps.com/cac-cau-lenh-mysql-can-phai-biet/
Cho mình hỏi lỗi này với. Chả hiêu sao phpmyadmin báo lỗi này:
phpMyAdmin – Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
Có phải do mình updae script k Luân??
Bạn xem bài này nhé: https://hocvps.com/cau-hoi/sua-loi-phpmyadmin-error-during-session-start-please-check-your-phpp/
mysqldump –single-transaction –routines –triggers –add-drop-table –extended-insert -u TaiKhoan -pMatKhauCuaBan Database | gzip -9 > /var/backups/2014-03-23/db_2014-03-23.sql.gz
Ở câu lệnh này mình thay đổi cho phù hợp với VPS mình như sau:
mysqldump –single-transaction –routines –triggers –add-drop-table –extended-insert -u root -p123QWE!@# test_db | gzip -9 > /var/backups/2014-03-23/db_2014-03-23.sql.gz
Sau đó mình chạy thì bị báo lỗi -bash: !@#: event not found
Như vậy là sao ạ? Mình làm sai bước nào vậy ạ? Thanks!
Do pass của bạn có ký tự lạ, thử dùng lệnh này xem sao:
mysqldump –single-transaction –routines –triggers –add-drop-table –extended-insert -u root -p'123QWE!@#' test_db | gzip -9 > /var/backups/2014-03-23/db_2014-03-23.sql.gz
OK anh, em làm dc rồi, nhưng còn 1 lỗi này:
Chạy đến phần Duplicity thì bị
20150521T072212Z.vol41.difftar.gz) failed: Server connection dropped: (Try 1 of 5) Will retry in 10 seconds.
sftp put of /tmp/duplicity-mbCHaG-tempdir/mktemp-2warK_-42 (as duplicity-full.20150521T072212Z.vol41.difftar.gz) failed: (Try 2 of 5) Will retry in 10 seconds.
sftp put of /tmp/duplicity-mbCHaG-tempdir/mktemp-2warK_-42 (as duplicity-full.20150521T072212Z.vol41.difftar.gz) failed: (Try 3 of 5) Will retry in 10 seconds.
sftp put of /tmp/duplicity-mbCHaG-tempdir/mktemp-2warK_-42 (as duplicity-full.20150521T072212Z.vol41.difftar.gz) failed: (Try 4 of 5) Will retry in 10 seconds.
sftp put of /tmp/duplicity-mbCHaG-tempdir/mktemp-2warK_-42 (as duplicity-full.20150521T072212Z.vol41.difftar.gz) failed: (Try 5 of 5) Will retry in 10 seconds.
File backup em tận 2,9gb lận. Ko biết xử lý làm sao nữa, anh chỉ giúp em. Thanks!
File backup mà 2.9GB thì không nên dùng Duplicity, tính nước khác thôi bạn 🙁
Hi, ok anh. em đã tìm ra cách, dùng scp qua vps backup mà không cần nhập pass. Ko biết cách này có ổn ko a nhỉ? Thanks a rất nhiều 🙂
Cách này cũng được, nhưng bạn nén file lại trước khi copy sẽ nhanh hơn. Ngoài ra tạo 1 user ko có quyền root để bảo mật thêm.
Hi anh!
Em làm thành công bằng lệnh scp rồi. Nhưng bây giờ e muốn bên VPS phụ chứa file backup tự động xóa bản backup 2 ngày trước kể từ ngày hiện tại thì viết lệnh xóa ntn vậy a?
Vd như e có 1 loạt file backup như này:
files_2015-05-19.zip
files_2015-05-20.zip
files_2015-05-21.zip
Thì viết lệnh nào để nó tự động xóa files_2015-05-19.zip đi hả anh?
Đơn giản hơn rất nhiều nếu bạn lưu trữ 1 tháng, mỗi tháng sẽ tự động chạy crontab 1 lần để xóa toàn bộ folder trước đó với ký tự *:
rm -rf files_2015-05*
Tháng hiện tại thì lấy đơn giản, ví dụ cách của mình:
month=$(date +"%m")
Dạ, thanks anh, nhưng vấn đề là e backup hằng ngày, file backup thì dung lượng quá lớn, nếu để 1 tháng mới xóa thì ổ cứng server phụ ko chứa nổi. Nên em muốn giữ lại 2 bản backup gần nhất tính từ ngày hiện tại. Nhưng lại ko biết tham số để xóa nó ntn? 🙁
Cũng tương tự như thế thôi, ngày hiện tại thì bạn dùng lệnh
date=$(date +"%d")
Giờ vps có nhiều website mà backup 1 lần hết lun thì làm như nào anh?
ah mà quên nữa vps em đang xài là ubuntu 14.04 chứ không phải là Centos
Em có dùng Duplicity trên Ubuntu không? Nếu có thì chỉ cần edit lại mấy lệnh backup sao cho nó backup toàn bộ thư mục và database chứa web là xong thôi.
rồi ok cám ơn anh
duplicity restore –file-to-restore / file:///var/backups/chiasecoupon.com/2014-03-23 /var/backups/chiasecoupon.com/extract
Synchronizing remote metadata to local cache…
Copying duplicity-full-signatures.20140322T142037Z.sigtar.gz to local cache.
Copying duplicity-full.20140322T142037Z.manifest to local cache.
Last full backup date: Sat Mar 22 21:20:37 2014
GnuPG passphrase:
Đoạn này là thực hiện ở vps backup hay trên vps chứa website
Thao tác này để lấy lại các file đã sao lưu, do đó thực hiện trên vps backup nhé bạn.
Mình thực hiện thì bị báo như thế này
-bash: duplicity: command not found
Như vậy là làm sao vậy bạn?
Vậy là bạn chưa cài đặt duplicity trên VPS, giờ cài thêm thôi
Tức là ở cả 2 vps mình đều phải cài đúng ko?
Đúng rồi bạn
[root@control ~]# sudo yum install duplicity
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: centos.sonn.com
* extras: centos.sonn.com
* updates: centos.sonn.com
No package duplicity available.
Error: Nothing to do
Mình cài trên vultr thì ok mà cài trên ramnode thì báo thế này,mình cần làm gì để khắc phục! Cảm ơn bạn!
Bạn cài repo EPEL rồi thực hiện lại xem sao: https://hocvps.com/cai-dat-epel-va-remi-repo-tren-centos/
Mình đã thực hiện đến bước cuối.
Import of duplicity.backends.dpbxbackend Failed: No module named dropbox
Synchronizing remote metadata to local cache…
Copying duplicity-full-signatures.20150408T130620Z.sigtar.gz to local cache.
Copying duplicity-full.20150408T130620Z.manifest to local cache.
Last full backup date: Wed Apr 8 09:06:20 2015
GnuPG passphrase:
Nhưng vào chẳng thấy mục extract đâu cả,là bị sao nhỉ
Mình mới update lại câu lệnh để restore, bổ sung thêm option –no-encryption, bạn thử lại xem sao nhé.
em làm theo đúng hướng đãn, đã backup nhưng nó không tải lên ramnode
Cụ thể như thế nào bạn nhỉ?
em dùng vultr để đặt web và ramnode để chứa file backup nhưng em check trong thư mục dạng /var/backups/2014-03-23/ ở vultr thì có file nhưng trong thư mục ramnode thì không có, đã test kết nối thì ok nhưng không tự động chạy file thì phải, anh có thể làm video hướng dẫn chi tiết được không anh?
Trên Ramnode cũng phải manual tạo các folder cần thiết. Bạn check lại xem có chưa?
trên ramnode em cũng tạo thư mục theo dạng /var/backups/website.com/2014-03-23/ tuy nhiên check thì không thấy có dữ liệu
Bạn liên hệ qua email hoặc tạo câu hỏi trong phần hỏi đáp nhé, mình sẽ hướng dẫn check lại cụ thể cho.
Mình kết nối ssh với Backup VPS rồi nhưng dùng lệnh
duplicity full –no-encryption –ssh-options=”-oProtocol=2 -oIdentityFile=/root/.ssh/backup_rsa” /var/backups/2014-03-23/ scp://root@12.34.56.78//var/backups/chiasecoupon.com/2014-03-23/
(Đã chỉnh đường dẫn chuẩn và IP là IP Backup VPS rồi)
Thì báo lỗi này:
Import of duplicity.backends.dpbxbackend Failed: No module named dropbox
Temp space has 0 available, backup needs approx 34078720.
Các bạn giúp mình nhé. Cảm ơn.
Lỗi Import of duplicity.backends.dpbxbackend Failed: No module named dropbox không quan trọng lắm.
Temp space has 0 available, backup needs approx 34078720 thì có vẻ folder chứa backup không được phân quyền chuẩn rồi thì phải?
yum install duplicity : không hoạt động, mình đang dùng CentOS 7 64bit . Vui lòng chỉ giúp.
Cam on.
[root@server2 ~]# yum install duplicity
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.ash.fastserv.com
* epel: mirror.metrocast.net
* extras: mirror.es.its.nyu.edu
* updates: mirror.net.cen.ct.gov
No package duplicity available.
Error: Nothing to do
Duplicity chưa hỗ trợ đến CentOS 7 bạn ạ
Hi,
* Cho mình hỏi là có phải cấu hình sendmail không vì mình chạy thử backup.sh thành công nhưng không thấy email thông báo.
* 2 thư mục backup ở trên 2 vps là thỉnh thoảng phải vào xóa thủ công đúng không bạn?
– Bạn hãy check lại chức năng sendmail của VPS xem có bị chặn không bằng cách chạy lệnh
echo "Subject: test" | /usr/lib/sendmail -v me@domain.com
(nhớ thay email của bạn)– Chính xác thế, thích thì bạn cho 1 cronjob chạy hàng tháng để xóa backup cũ đi, cái này cũng đơn giản
Tạo như nào thế a.Luân ơi 😀 Chỉ để lại các file backup trong trong vòng 1 tháng thôi thì làm thế nào nhỉ 😀
Lúc đó sử dụng tham số tháng hiện tại – 1 –> tháng trước, kèm với câu lệnh xóa file
rm -rf /folder/
là được.Sử dụng cụ thể thì tùy theo nhu cầu nhé.
Chưa hiểu lắm a ơi @.@ tutorial chi tiết xíu a.Luân ơi :p
Cái này ko có tutorial được, tự viết custom theo nhu cầu thôi.
Bạn nhìn vào code trong bài thì $(date +”%Y-%m-%d”) là ngày tháng hiện tại đó –> xóa tháng trước là rm $(date +”%Y-%m*”)
OK cám ơn bạn. Tại mình đang dùng Backup Buddy. Mình mới mua VPS trên DO nên hay lên blog của bạn để nghiên cứu tối ưu. Theo Luân thì nên chon severtut hay tự cài đặt và tối ưu LEMP sẽ tốt hơn?
Mình thường tự cài đặt và tối ưu, thích dùng cái gì thì cài cái đó, ưu điểm bạn sẽ học được nhiều hơn, nhược điểm mất thời gian :D. À nếu có dùng VPS cho nhiều site thì có thể cài servertuts, nó quản lý khá tốt.
Cho mình hỏi dùng VPS sử dụng Backup Buddy để backup và restore Database có được không vậy?
Được chứ bạn, dùng plugin này thì không quan trọng shared hosting hay VPS đều ok hết
Có cách nào đẩy trực tiếp database + source qua VPS Backup mà không cần bước duplicity restore không bạn ?
Mình cũng đã test trên Google drive và thành công như data bị nén theo kiểu của duplicity phải Restore lại mất công quá.
Hôm trước mình cũng thử tìm rồi, nhưng không thấy bạn ạ. Toàn phải giải nén ra mới được file db + source
Lúc Restore nó báo nhập GnuPG passphrase:
phải nhập cái gì đó vào nó mới kết thúc. khắc phục sao vậy bác ?
Để trống nhé bạn
Không thể nói gì hơn ngoài 2 từ tuyệt vời, mình mới sử dụng VPS và backup thủ công rất lâu mua vaultpress nhưng thấy cũng không hiệu quả.
Tôi nay mình sẽ test thử cách của bạn.
Các bài viết ở đây rất thiết thức, thanks bác nhiều !