Sziasztok! Az alábbi lépéseket követve beüzemeltem az rsync-et a szerver gépen:
Make sure xinetd and rsync is available, if not type
# yum -y install rsync xinetd
Add xinetd service to system
# chkconfig --add xinetd
Make sure xinetd running on init 3 and 5
# chkconfig --list xinetd
Enable rsync
# vi /etc/xinetd.d/rsync
Change disable = yes into disable = no
Create username and password for rsync client to use
# vi /etc/rsyncd.secrets
adminname:hispassword
Create configuration and shares for rsync daemon
# vi /etc/rsyncd.conf
max connections = 2
log file = /var/log/rsync.log
timeout = 300
[shares]
comment = shared data stored here
path = /mnt/shared
read only = true # chg to true if you want read only
list = yes
uid = adminname
gid = adminname
auth users = adminname
secrets file = /etc/rsyncd.secrets
hosts allow = 10.0.0.244/24
Restart xinetd
# service xinetd restart
Make sure rsync now running
# chkconfig --list
Eddig minden rendben is ment. A kliens gépen is van rsync. Mindkét gépen van /mnt/shared/ mappa amit szeretnék tükrözni. Az lenne a lényeg, hogy a szerveren lévő mappa átkerüljön a kliensre, fordítva nem. Ha működik, akkor pedig a későbbiekben cron-ban 5 percenként lefutna a parancs ami átmásolja az adott könyvtár tartalmát. Ezt a parancsot kellene valahogy kitenyészteni. Segítségeteket előre is megköszönöm!
- 2710 megtekintés
Hozzászólások
"Ezt a parancsot kellene valahogy kitenyészteni."
Kb: rsync -rav --rsh="ssh -C -l !USER! -i !PATH/TO/SSH-KULCS! -p !PORT!" "szerver:/mnt/shared" /mnt
Ha jó, akkor mehet/kell is a "--delete" opció.
- A hozzászóláshoz be kell jelentkezni
De neki valamiért rsyncd van bereszelve, amikor is kb. ilyesmi kellene:
RSYNC_PASSWORD=pass
rsync -rav user@rsync://szerver/shares /mnt/
A könyvtárvégi perjeleket sose tudom, pedig megvan a logikája, de mindig elfelejtem.
bterv: azt tudnod kell, hogy általában nem az rsyncd-t használjuk, hanem ssh csatornán tolja át magát az rsync. Ennek több előnye is van, tömöríthet is meg titkosít is, és én még nem találtam okot rá, hogy ne így csináljam.
- A hozzászóláshoz be kell jelentkezni
Ok lehet pl. egy cpu-intenzív alkalmazás a kliensen/szerveren, vagy egyszerűen egy gyengébb cpu-val megáldott kliens. Láttam olyat, amikor a korábbi fp-ről átállva a biztonságosabb scp-re az user panaszkodott, hogy laaaaasssssúúú... Kiderült, hogy az scp/ssh volt tetű...
- A hozzászóláshoz be kell jelentkezni
RTM, egyébként meg rsync -avuzb host:dir/ ide
- A hozzászóláshoz be kell jelentkezni
Apróság, de NE cron-ból futtasd, vagy legalábbis ne direktben az rsync-et - ugyanis nem biztos, hogy jó lenne, ha egymásra futna két rsync, azaz egy script, ami az elején ellenőrzi, hogy van-e már lockfájl, majd ha nincs generál egyet (/var/lock/rsync_scriptem.lck) és elindítja a rsync-et, és ha kész, a script végén törli a fájlt. Ha az induláskor van lockfájl, akkor küld levelet, akármit, hogy a palacsinta nem oda való matériával van töltve :-P
A cron helyett egy aprócska scriptet lehet indítani inittabból respawn-nal. ez a script az rsync futtatása után sleep 300-zal vár, és kilép - az init meg gondoskodik róla, hogy újra fusson.
- A hozzászóláshoz be kell jelentkezni
Nagyon szépen köszönöm mindenkinek a segítséget!
A véglegesen kitenyésztett parancs:
rsync -rav --rsh="ssh -C -l root -p 2222" /mnt/shared "10.0.0.244:/mnt/"
Ezt bele fogom írni akkor egy scriptbe és azt teszem majd bele a crontab-ba.
Ezer hála még1X! Köszi!
- A hozzászóláshoz be kell jelentkezni
vagy ahogy zeller írta, inkább inittabba. ;) Tényleg jobb lenne...
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Rsync gondom akadt, kérdeznék tőletek.
Van egy szerverem, amin rsync szerver fut.
Van egy másik szerverem, amin rsync klienssel csatlakozok.
A cél az lenne, hogy a szerver oldali dolgokról legyen egy biztonsági másolat.
Minden szépen és jól működik.
Azt szeretném viszont, ha a szerver oldalon törlődik egy fájl - mert már nincs rá szükség - akkor a kliens oldalon is törlődjön.
Próbáltam a --delete kapcsolót, ekkor amikor indult a szinkronizálás, minden törlődött a kliens oldalon, aztán újra letöltött mindent. Hogyan kellene ezt megoldanom, hogy a fenti igény valósuljon meg?
Jelenleg most ez a kliens oldalon futtatott parancs:
/usr/bin/rsync -avz rsync://username@szerver.hu/backup/ /mnt/tmpbackup --delete --password-file=/root/rpaswd
Bár igazából nem próbáltam, de lehet, hogy egész egyszerűen az rsync úgy működik, ahogy nekem kellene? Azaz ha egy fájl törlődik a szerver oldalon, akkor azt automatikusan törli a kliens oldalról is?
Nagyméretű tgz fájlokról van szó, azért használnám az rsync-et, hogy ténylegesen csak a változások menjenek át.
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Gondom akadt az rsync-kel, találtam hasonló gondot, de igazán megoldást nem.
Van egy távoli, interneten levő szerver, azon vannak egy könyvtárban *.tgz fájlok.
Nekimegyek rsync-kel, el is kezdi szedegetni őket, majd elhasal az alábbi üzenettel:
rsync: writefd_unbuffered failed to write 4 bytes [generator]: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(1509) [generator=3.0.5]
rsync error: received SIGUSR1 (code 19) at main.c(1286) [receiver=3.0.5]
A gépen, melyen az rsync-et indítom, 3.0.5-ös rsync verzió van.
A távoli szerveren 3.0.3-as.
Találkoztatok már ilyen gonddal?
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
2 gépen 1 irányú szinkronizációt szeretnék kialakítani. A cél gépen 1 héttel ezelőtti állapotban van az adott mappa.
Mivel az adatmennyiség hatalmas ezért csak a változásokat szeretném szinkronizálni. Nem sok változás volt egy hét alatt mégis nagyon sokáig fut és az egész adatállományt le akarja menteni. Verbose módban írja mindig h éppen mit másol, de csomó olyan van köztük ami már ott van.
Ez a parancs van a script-be építve:
rsync -vrp --delete --rsh="ssh -C -l $REMOTE_USER -p 22" $FORRAS $CEL
Ha az egyik gépen törlök valamit, az törlődik a másikról is a --delete miatt.
Az lenne a kérdésem, h miért nem csak a változásokat menti?
Köszi!
- A hozzászóláshoz be kell jelentkezni