Sida 1 av 1
rsync genom cron körs inte. [löst]
Postat: 18 feb 2012, 01:02
av rylleman
Jag försöker sätta upp en backup på hemmaservern som drar filer från jobbservern med rsync.
*Jag har satt upp ssh-nycklar så jag kan logga in på jobbservern från hemmaservern utan att behöva ange lösen.
*rsync funkar om jag kör det i terminalen
Kod: Markera allt
rsync -ra --exclude-from=/home/server/rsync-WORK-BUP-excludes -e ssh user@url:/media/WORK/* /media/BUP/
* crontab funkar, jag testar med en touch på en lokal fil.
rsync-kommandot funkar inte i crontab (sudos crontab)
Kod: Markera allt
30 2 * * * rsync -ra --exclude-from=/home/server/rsync-WORK-BUP-excludes -e ssh user@url:/media/WORK/* /media/BUP/
Inga filer synkas. Varför!?
Re: rsync genom cron körs inte.
Postat: 18 feb 2012, 07:11
av ubot
Det här kanske fungerar?
Kod: Markera allt
30 2 * * * bash -c "rsync -ra --exclude-from=/home/server/rsync-WORK-BUP-excludes -e ssh user@url:/media/WORK/* /media/BUP/"
Re: rsync genom cron körs inte.
Postat: 19 feb 2012, 15:03
av rylleman
Nope, funkade inte. Blev ingen backup av det heller.
Re: rsync genom cron körs inte.
Postat: 19 feb 2012, 16:36
av ubot
rylleman skrev:Nope, funkade inte. Blev ingen backup av det heller.
Frågan är om det är cron job:et som inte körs eller kommandot som inte fungerar? Eftersom kommandot fungerar i Terminalen så lutar det mot att det är cron job:et som inte körs ö.h.t.? Testa:
Testa också:
Kod: Markera allt
30 02 * * * touch /home/username/cronjob.txt
där username är din användares username.
Hittar du filen cronjob.txt i din Hemkatalog efteråt?
Du vet att 30 02 * * * betyder att cron job:et ska köras 02:30 varje dag?
Edit:* crontab funkar, jag testar med en touch på en lokal fil.
Oj, glömde att du hade testat.
Då är det alltså kommandot som strular. Fungerar det här då?
Kod: Markera allt
30 02 * * * 'rsync -ra --exclude-from=/home/server/rsync-WORK-BUP-excludes -e ssh user@url:/media/WORK/* /media/BUP/'
Ett annat förslag är att ange hela sökvägen till kommandot rsync. Cron job kanske inte hittar kommandot om du inte anger hela sökvägen? Jag menar så här: /usr/bin/somedirectory/somecommand
Att användaren inte behöver ange hela sökvägen har ju att göra med att sökvägen finns i PATH:en. Ett cron job kanske måste få hela sökvägen till programmet?
Re: rsync genom cron körs inte.
Postat: 19 feb 2012, 21:57
av Konservburk
rylleman skrev:*Jag har satt upp ssh-nycklar så jag kan logga in på jobbservern från hemmaservern utan att behöva ange lösen.
*rsync funkar om jag kör det i terminalen
Kod: Markera allt
rsync -ra --exclude-from=/home/server/rsync-WORK-BUP-excludes -e ssh user@url:/media/WORK/* /media/BUP/
* crontab funkar, jag testar med en touch på en lokal fil.
rsync-kommandot funkar inte i crontab (sudos crontab)
Kod: Markera allt
30 2 * * * rsync -ra --exclude-from=/home/server/rsync-WORK-BUP-excludes -e ssh user@url:/media/WORK/* /media/BUP/
Inga filer synkas. Varför!?
Den stora skillnaden mellan att köra ett kommando i terminalen och att låta cron köra samma kommando är cron har en mer begränsad miljö, dvs en betyligt midre uppsättning miljövariabler. När ett kommando fungerar från terminalen men inte från cron så är det oftast den sparsamma miljön i cron som är orsaken till problemet.
Re: rsync genom cron körs inte.
Postat: 20 feb 2012, 15:02
av rylleman
Jag trodde också att det var miljövariablarna som strulade när jag läst runt lite på nätet. Försökt otaliga varianter med export PATH osv. men fick inget att funka.
Nu har jag kommit på att det beror på ssh-verifikationen.
(Vilket jag borde kommit på mycket tidigare om jag läst mejlen...
"Permission denied (publickey,keyboard-interactive).
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]"
Nyckelparet är skapade med en normal användare men cron körs som sudo och krävs då på lösen. Jag har dock inte lyckats få till så su får ansluta till servern med ett nyckelpar. Har testat att köra både ssh-keygen och ssh-copy-id USERNAME@SERVER som sudo men jag får det inte att funka. Hur gör jag för att skapa nycklar och få till ssh-verifikationen för su?
Re: rsync genom cron körs inte.
Postat: 20 feb 2012, 16:49
av Konservburk
rylleman skrev:Nyckelparet är skapade med en normal användare men cron körs som sudo och krävs då på lösen. Jag har dock inte lyckats få till så su får ansluta till servern med ett nyckelpar. Har testat att köra både ssh-keygen och ssh-copy-id USERNAME@SERVER som sudo men jag får det inte att funka. Hur gör jag för att skapa nycklar och få till ssh-verifikationen för su?
Jag har för mig att ssh letar efter nyckelfilen under
/root/.ssh/id_rsa, så du kan ju testa att lägga en kopia där. Tänk även på att rättigheterna måste vara satta så att ingen annan än
root kan läsa eller skriva till nyckelfilen, dvs
0600.
Fungerar det inte så kan du ange explicit vilken nyckelfil du vill använda med flaggan
-i till ssh, dvs byt ut
-e ssh mot
-e 'ssh -i /sökväg/till/den/privata/nyckelfilen' i ditt kommando.
Re: rsync genom cron körs inte.
Postat: 20 feb 2012, 21:08
av rylleman
Ja!
exporterade roots RSA-nyckel till servern (sudo ssh-copy-id -i /root/.ssd/id_rsa.pub USERNAME@SERVER) och nu kan root ssh t. servern utan lösen.
rsync genom cron fungerar!
Tack båda för hjälpen!