Requirements: Content on a server, scheduled daily backup to remote disaster-tolerant server. To save space and improve transmission efficiency, use incremental backups.
Expansion requirements: Two servers in real time one-way, bidirectional synchronization of all data in a directory.
Environment: Cent OS 5 (5.4 5.5 5.6 test pass), system with rsync.
1. Install rsync (already installed can be ignored)
The code is as follows |
Copy Code |
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz Tar Xvfz rsync-3.0.7.tar.gz CD rsync-3.0.7 ./configure--prefix=/usr/local/rsync Make && make install |
2. Configure Rsync to create a rsyncd.conf file.
Vim/etc/rsyncd.conf
Enter the following content:
The code is as follows |
Copy Code |
Uid=nobody Gid=nobody Max connections=36000 Use Chroot=no Log File=/var/log/rsyncd.log PID File=/var/run/rsyncd.pid Lock File=/var/run/rsyncd.lock [Htdocs] comment= Backup Htdocs Path=/opt/htdocs/view Ignore errors Read Only = yes Host Allow = * Host deny=* Secrets file=/etc/rsyncd.passwd Auth Users=bakccad |
Modify:
The code is as follows |
Copy Code |
vim/etc/rsyncd.passwd |
Input:
The code is as follows |
Copy Code |
username:13577531
|
Perform:
The code is as follows |
Copy Code |
chmod 600/etc/rsyncd.conf chmod 600/etc/rsyncd.passwd |
3. Start rsync in server-side mode:
The code is as follows |
Copy Code |
/usr/local/rsync/bin/rsync--daemon |
Client:
Client does not need to install, just edit password file Enter password:
The code is as follows |
Copy Code |
vim/etc/rsyncd.passwd |
Input:
13577531
Perform:
The code is as follows |
Copy Code |
chmod 600/etc/rsyncd.passwd |
The client completes server-side to local synchronization by executing the following command:
The code is as follows |
Copy Code |
Rsync-azp--delete Bakccad@1.2.3.4::htdocs/opt/bakroot/rsyncwww/view--password-file=/etc/rsync.passwd |
This command htdocs the name of the server-side configuration. The following path is the path saved to. Behind the password file, the password file can only have a password (client if the use of user:passwd in the form of the error will occur).
Attached, if you just backed up the backup we can use the shell command directly for backup
Set in Cron, perform every Monday 2 o'clock in the morning (full backup every Monday, incremental backup for the rest of time)
The code is as follows |
Copy Code |
#vi backup.sh Code highlighting produced by Actipro Codehighlighter (freeware) Http://www.CodeHighlighter.com/-->#!/bin/bash
# define dayofweek= ' Date ' +%u ' today= ' Date ' +%y%m%d ' source=/data/ backup=/backup/ # action CD $backup If [$dayofweek-eq 1]; Then if [!-F "full$today.tar.gz"]; Then RM-RF Snapshot Tar-g snapshot-zcf "full$today.tar.gz" $source--exclude $sourceserver. Log Fi Else if [!-F "inc$today.tar.gz"]; Then Tar-g snapshot-zcf "inc$today.tar.gz" $source--exclude $sourceserver. Log Fi Fi |
It's going to have to back up the good data in your designated directory