Sida 1 av 1

Flytta filer i ett cronjob, hur göra?

Postat: 03 jan 2008, 23:19
av lellel
Hej!

Jag skulle vilja ha ett script som gör följande automatiskt en gång per dygn:

1 hämtar alla filer som ligger i

/var/www/web1/backup/dagens_datum.zip
/var/www/web2/backup/dagens_datum.zip
/var/www/web3/backup/dagens_datum.zip
etc...

2 ftp:ar upp filerna till en ftp med samma struktur, dvs:
ftp://home/ftpmappen/web1/backup/dagens_datum.zip
ftp://home/ftpmappen/web2/backup/dagens_datum.zip
ftp://home/ftpmappen/web3/backup/dagens_datum.zip
etc

3 rensar undan gamla backuper vart efter nya anländer dvs:
rm ftp://home/ftpmappen/web1/backup/alla_f ... _vecka_tex
rm ftp://home/ftpmappen/web2/backup/alla_f ... _vecka_tex
rm ftp://home/ftpmappen/web3/backup/alla_f ... _vecka_tex
etc

och på det viset ständigt har ett gäng fräsha backuper på de websidor jag hostar...

Min fråga är alltså:
Är detta görbart?
Nån som har en bra how-to till mina önskemål att referera till?

Det känns som om detta borde vara "ganska basic" att få till, men då jag i det närmaste är helt grön på området är det svårt att hitta en enda att börja dra i.

Mycket tacksam för hjälp!

Mvh Daniel

Oj! Det slog mig att ämnet kanske inte hör hemma här, men i så fall ber jag en vänlig moderator att flytta det till en mer passande tråd.

SV: Flytta filer i ett cronjob, hur göra?

Postat: 03 jan 2008, 23:58
av Daniel Nylander
ZIP är för Windows. Använd tar.
Använd SSH istället för FTP. Enklare att skripta och säkrare.

SV: Flytta filer i ett cronjob, hur göra?

Postat: 04 jan 2008, 00:03
av lellel
Tyvärr kan jag inte påverka filformatet, dom blir utspottade dit av ett annat script, som jag inte har en aning om hur det fungerar.

Däremot kan jag tänka mig att ssh:a filerna istället... =)

Mitt största problem just nu är att jag inte har en aning om hur man skriver script... =/
Borde inte vara så svårt, men jag vet inte ens vad jag ska leta efter.

SV: Flytta filer i ett cronjob, hur göra?

Postat: 04 jan 2008, 00:42
av maths57
Det låter som om man skulle behöva skapa en eller flera loopar som bläddrar igenom /var/www och lägger upp en zip-fil i taget till FTP-servern till det inte finns några kvar att skicka iväg. Sedan skulle skriptet köra ett kommando som med ett reguljärt uttryck raderar filer som är äldre än 7 dagar. Någonstans har jag sett ett skript som just lägger upp filer på en FTP-server, men minns inte var. Antagliten får man använda kommandot ftp. Det skulle kunna gå, men tyvärr klar inte jag av det eftersom min hjärna inte klarar programmering av det här slaget. :'( Men det finns ju duktiga programmerare på det här forumet.

SV: Flytta filer i ett cronjob, hur göra?

Postat: 07 jan 2008, 01:20
av lellel
nu har jag lyckats med en jätteful lösing till 1 och 2. Den är inte vacker, men det är allt jag lyckats lura ut. den ser ut som följer:

Kod: Markera allt

find /var/www/web*/backup -name *.zip > /home/daniel/backuper.txt

wput ftp://user:pass@192.168.x.x:21 --input-file ~/backuper.txt
Så det är inte vackert, det är med ftp fast det fungerar.

Jag har 2 frågor som jag behöver svar på innan jag kan fundera mer.

1 Att göra filurvalet via en extern fil känns lite.... sådär. Hur gör jag urvalet på ett snyggare sätt och håller mig till en fil?

2 Vilken applikation är enklast att flytta filer med i ssh? Jag har tittat på scp och curl.

3 Hur ska jag lyckas radera filer p.g.a sitt datum?

Mvh Daniel

PS. Jag behöver kanske inte tillägga att jag ALDRIG nånsin skrivit nåt med avancerat än en mycket enkel .bat -fil i dos för LÄNGE se? =) DS

SV: Flytta filer i ett cronjob, hur göra?

Postat: 07 jan 2008, 03:42
av mcNisse
2 Vilken applikation är enklast att flytta filer med i ssh? Jag har tittat på scp och curl.
I skript skulle jag tro att det är curl. Har för mig att det är besvärligt att få in lösenordet till scp/ssh. Annars är ju scp enklare.
3 Hur ska jag lyckas radera filer p.g.a sitt datum?
find . -type f -mtime -1 -print0 | xargs -0 rm

Detta tar bort filer som är modifierade idag. Har för mig att ett plus (+) ger filer som är äldre. Kolla man find för mer information.

SV: Flytta filer i ett cronjob, hur göra?

Postat: 07 jan 2008, 07:38
av johanre
Som jag precis tipsade Emil S. om i en annan tråd skulle jag även här rekommendera bontmia. http://folk.uio.no/johnen/bontmia/

SV: Flytta filer i ett cronjob, hur göra?

Postat: 07 jan 2008, 18:57
av KiviE
lellel skrev: 3 Hur ska jag lyckas radera filer p.g.a sitt datum?
find /var/www/web2/backup/* -daystart -mtime +6 -delete

6an är antal dagar. 0 är dagens datum!

Är det några andra filer i backup mappen? isf kommer de också försvinna, går nog att lösa med ett regexp.