Att sätta upp en push
server består av två grundläggande steg:
Ställa in rsync-åtkomst (för normal pull
-spegling) och ställa in en
ssh-utlösarmekanism (för att trycka (push
) i pull
-speglingen).
(För mer information om vad en push
-server är, läs
push
-speglingsförklaringen.)
Installera rsync version 2.1.1 eller senare.
Om din server kör Debian installerar du bara det senaste
rsync-paketet.
Skapa rsyncd.conf och lägg in något i stil med detta:
uid = nobody gid = nogroup max connections = 25 socket options = SO_KEEPALIVE [debian] path = /srv/debian/mirror comment = Debians arkiv (~250 Gbyte) auth users = auktoriserat_konto1,auktoriserat_konto2,auktoriserat_kontoN read only = true secrets file = /etc/rsyncd/debian.secrets
Lägg en post för varje server som hämtar från dig med push
i filen
/etc/rsyncd/debian.secrets:
auktoriserat_konto1:ett_lösenord auktoriserat_konto2:annat_lösenord auktoriserat_kontoN:lösenord
Du har nu gett nedströmsspeglarna tillgång till arkivet på din maskin.
Du vill antagligen starta rsyncprocessen från inetd.
För att göra detta måste du lägga in rsync-servicen i filen
/etc/services (om det inte redan står där), så här:
rsync 873/tcp
För att aktivera servern från inetd, lägger du till följande i din
/etc/inetd.conf:
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
(Kom ihåg att sända en HUP-signal till inetd för att tala om för det att läsa om sin inställningsfil efter att du ändrat den.)
Skapa en ny ssh-nyckel för kontot som du använder för att spegla Debian. Se till att du inte skriver över din riktiga ssh-nyckel genom att använda flaggan -f, till exempel:
ssh-keygen -f ~/.ssh/identity.minserver
Se till att den nya öppna nyckeln (~/.ssh/identity.minserver.pub) innehåller följande i början:
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="~/sync &"
Du måste ställa in skriptet så att det kontaktar speglar nedströms.
Skapa en fil med namnet signal med följande innehåll:
#!/bin/sh # Detta skript anropas för att signalera fjärrvärden att det är dags # att spegla arkivet. echo Signalerar $1 ssh -o"BatchMode yes" -o"user $2" "$1" -i $HOME/.ssh/identity.mysite sleep 1
Detta skript kommer att logga in på fjärrvärden genom att använda den speciella ssh-nyckel du skapade ovan, förutsatt att varje nedströmsspegelsoperatör lägger till denna nyckel till deras egen ~/.ssh/authorized_keys (och ersätter "sync" med "anonftpsync" eller vad deras kommando för att starta speglingen kallas). Skriptet själv gör inget användbart på den andra sidan, kommandot kommer att köras som specificerat i nyckelinställningarna.
För att faktiskt signalera speglarna måste du köra
./signal <plats> <användar-id> efter att din egen
rsyncning utförts.
Därmed kommer du, så snart som din plats har speglat klart från din uppströmsplats,
att börja föra speglingen vidare (push
) till de nedströms från dig.
Du kan placera dessa kommandon antingen i slutet av ditt
anonftpsync-skript eller, om det är enklare för dig, i ett nytt
skript och sedan köra detta skript från anonftpsync, exempelvis:
#!/bin/sh # Detta skript anropas av websync för att signalera nedströmsspeglarna. cd $HOME ./signal någon.annan.plats archvsync ./signal och.ytterligare.en kontopåandrasidan
Om du har problem med detta, kontakta oss.