Rsync attālinātu kopiju veidošana
Must prepare before: Open SSH serveris |
Saturs
- Uzstādīšana
- Vienkārša kopēšana/atjaunošana no mapes uz mapi
- Vides sagatavošana
- Kopēšana ar vilkšanu
- Kopēšana ar grūšanu
- Ieplānošana
- Kļūdu novēršana
- Saites
- Alternatīvas
Uzstādīšana
Izpilda komandu:
Vienkārša kopēšana/atjaunošana no mapes uz mapi
Noteiktu mapi uz mapi var nokopēt/atjaunot ar komandu:
rsync -avzr --delete-after "/from/folder/" "/to/folder/"Noteiktu mapi caur SSH var nokopēt/atjaunot ar komandu:
rsync -avzr --delete-after "user@host:/from/folder/" "user@host:/to/folder/"Vairāku noteiktu mapju saturu var nokopēt/atjaunot, piemēram, ar skriptu:
#!/bin/bash
for i in folder1 folder2 folder3; do
rsync -avzr --delete-after "/from/$i/" "/to/$i/"
done
Vides sagatavošana
- Tiek pieņemts, ka visiem attālinātajiem (mērķa) serveriem darbojas SSH serveris un rezerves kopijas atrodas mapē /home/backup.
- Arī uz lokālā datora (failu servera) visas kopijas veido mapē /home/backup, katra atsevišķa servera kopijas izvieto apakšmapē, kas sakrīt ar servera nosaukumu.
- Ja uz mērķa serveriem ir aizliegta root lietotāja pieteikšanās, nodrošina, lai lietotājam (piem., student) ir tiesības lasīt rezerves kopiju mapes.
Pievieno lietotāju student root grupai:
usermod -G root -a studentNodrošina, ka uz attālinātajiem serveriem root grupai ir tiesības lasīt, bet citiem ne:
chown root:root /home/backup
chmod 750 /home/backup
Līdzīgi nodrošina, ka uz lokālā datora student lietotājam ir tiesības rakstīt mapē /home/backup:
usermod -G root -a student
chown root:root /home/backup
chmod 770 /home/backup- Nodrošina, ka no lokālā datora, uz attālinātajiem serveriem var pieteikties bez paroles.
- Ar student lietotāju piesakās visiem mērķa serveriem ar ssh, apstiprina to sertifikātus un pārbauda, ka var pieteikties bez paroles un var nolasīt mapes /home/backup saturu.
Ja vēlas izmantot īsus kopējamo serveru vārdus, pievieno to IP adreses un nosaukumus failā /etc/hosts, piemēram:
...
85.254.211.1 ante
92.240.68.210 odo
...
Kopēšana ar vilkšanu
Mapē /home/bin izveido failu backup_servers ar sekojošu saturu:
#!/bin/bash
user="valdis"
# List of servers, delimited by spaces
hosts="hosta hostb hostc hostd"
tdir="/home/backup/"
log="/home/backup/backup_servers_log"
for chost in $hosts
do
backup_dir=$tdir$chost
if [ ! -d $backup_dir ]; then
mkdir $backup_dir
fi
## add -n for dry run (test only)
# command="rsync -avzr --delete-after --delete-excluded --ignore-errors --exclude *old* $user@$chost:/home/backup/ $tdir$chost"
command="rsync -avzr --delete-after --delete-excluded --ignore-errors $user@$chost:/home/backup/ $tdir$chost"
echo "============================================================================">>$log
echo "*********** $chost backup *********** `date`">>$log
echo "============================================================================">>$log
echo $command >> $log
$command >> $log 2>&1
done- Izmantotie parametri norāda, ka:
- -a veidot pilnu (arhīva) kopiju, ieskaitot failu datumus, grupas un tiesības,
- -v rādīt ziņojumus,
- -z izmanot datu pārraides kompresēšanu,
- -r kopēt visus apakšmapes,
- --delete uz lokālā datora izdzēst uz mērķa datora vairs neesošus mapes,
- --exclude *old* izlaist failus un mapes, kuru nosaukumā ir old
- -n var pievienot, veicot testus (izvada paziņojumus, bet reālu kopēšanu neveic)
Iestata faila pieejas un izpildes tiesības:
chown student:root /home/bin/backup_servers
chmod 770 /home/bin/backup_servers- Kā student lietotājs palaiž failu un pārliecinās, ka faili tiek nokopēti un nav nekādu kļūdu.
Kopēšana ar grūšanu
Mapē /home/bin izveido failu backup_server ar sekojošu saturu:
#!/bin/bash
shost="bubba"
sdir="/home/"
thost="files"
tuser="valdis"
tport="22"
tdir="/home/backup/$shost/"
log="/home/backup/backup_${shost}_log"
## add -n for dry run (test only)
command="rsync -e \"ssh -p $tport\" -avzr --delete-after --delete-excluded --exclude-from /home/bin/backup_exclude $sdir $tuser@$thost:$tdir"
echo "============================================================================">>$log
echo "*********** $shost backup *********** `date`">>$log
echo "============================================================================">>$log
echo $command >> $log
eval "$command >> $log 2>&1"Iestata faila pieejas un izpildes tiesības:
chown root:root /home/bin/backup_server
chmod 770 /home/bin/backup_server- Kā root lietotājs palaiž failu un pārliecinās, ka faili tiek nokopēti un nav nekādu kļūdu.
Ieplānošana
Izpilda komandu:
crontab -eAtvērtajā redaktorā ievieto rindas:
# m h dom mon dow command
0 6 * * * /home/bin/backup_servers
Kļūdu novēršana
Ja pieslēdzoties parādās kļūda:
rsync error: remote command not found (code 127) at io.c(454) [[receiver=2.6.9]]
tad uzstāda rsync arī uz mērķa datora.
Saites
- Rezerves kopēšana
- MySQL datubāzes kopēšana
- PostgreSQL datubāzes kopēšana
- http://www.mikerubel.org/computers/rsync_snapshots/
- http://blogs.sun.com/jkini/entry/how_to_scp_scp_and
Alternatīvas
Created by Valdis Vītoliņš on 2009-03-26 19:41
Last modified by Valdis Vītoliņš on 2022-04-11 15:10