Vinnaren i pepparkakshustävlingen!
2014-04-24, 18:16
  #1
Medlem
Hej,
Är det möjligt att på något sätt endast kopiera filer en gång med rsync?
dvs att få rsync att känna av att denna mapp är redan kopierad så jag kopierar den inte igen.

Jag tänkte först använda log-filen som en exclude fil, men det går inte riktigt så bra då jag inte lyckas få rsync att endast skriva in vilken mapp som har kopierats utom den skriver med massa annan info också.


Någon som har några tips?
Citera
2014-04-24, 18:18
  #2
Medlem
EckiEckis avatar
Citat:
Ursprungligen postat av devos

Någon som har några tips?

Hm, kan du utveckla lite varför du vill göra ett sånt urval?

rsync kan en jäkla massa, men som regel underlättar det att veta varför man vill göra något
Citera
2014-04-24, 18:44
  #3
Medlem
Citat:
Ursprungligen postat av EckiEcki
Hm, kan du utveckla lite varför du vill göra ett sånt urval?

rsync kan en jäkla massa, men som regel underlättar det att veta varför man vill göra något


Det är som så att Transmission laddar ner div olika mappar till min server, transmission raderar i sin tur dessa mappar då och då därför vill jag att rsync (vilket jag har lyckats med) kopierar mapparna om det finns nya var 3:de minut till min andra hårddisk.

Men om jag manuellt flyttar mappen från min andra hårddisk så kopierar rsync åter igen dit samma mapp från Transmission vilket inte är så bra då jag inte vill att den kopiera dit mappen igen om jag har sorterat bort den.
Citera
2014-04-24, 21:11
  #4
Medlem
bithaxs avatar
Känns som att det du vill är att kopiera över alla filer som ändrats sedan förra gången rsync kördes, och endast de filerna oavsett vad som finns vid destinationen.

Jag tror man blir tvungen att göra någon form av skript som söker upp alla filer som har modifierats innan x minuter tidigare och som genererar en exclude fil till rsync.
__________________
Senast redigerad av bithax 2014-04-24 kl. 21:13.
Citera
2014-04-24, 21:20
  #5
Medlem
bithaxs avatar
Det finns också möjligheten att köra skript när transmission avslutar en nedladdning.
https://trac.transmissionbt.com/wiki/Scripts

Det kanske kunde vara intressant, för då skulle du i stället för att köra en fil kopiering var tredje minut
i stället bara kunna synka över de enskilda mapparna när nedladdningarna avslutas.

Då slipper du också halvfärdiga filer på den andra disken.
Citera
2014-04-24, 23:54
  #6
Medlem
Lägg något sånt här som ett cronjob som körs så ofta som du vill:
Kod:
chrt -i 0 ionice -c 3 nice -n 17 /usr/bin/rsync -avW --bwlimit=3000 /din/källmapp /din/målmapp
Detta kommer endast kopiera de saker som inte redan finns i målmappen. Extragrejerna i början är väldigt trevligt till backupscript, eftersom ioschedulern och task schedulern nerprioriterar backupandet så det inte stör andra saker. bwlimit kan du så klart ta bort om du vill kopiera med full gas.

Om du istället vill skapa ett lite smartare script (istället för en enda rad i crontab) så kan du kolla så backupen inte redan är startad sedan föregående schemalagda exekvering:
Kod:
if [ `pgrep -x rsync` ]; then
    echo "rsync already running"; exit 0
fi
Citera
2014-04-25, 06:36
  #7
Medlem
hashs avatar
Citat:
Ursprungligen postat av bithax
Det finns också möjligheten att köra skript när transmission avslutar en nedladdning.
https://trac.transmissionbt.com/wiki/Scripts

Det kanske kunde vara intressant, för då skulle du i stället för att köra en fil kopiering var tredje minut
i stället bara kunna synka över de enskilda mapparna när nedladdningarna avslutas.

Då slipper du också halvfärdiga filer på den andra disken.

Om man kan få Transmission att kopiera efter varje färdig nedladdning, så är det ju problemet löst.
Annars blir det väl ditt förslag du skrev om tidigare inlägg att man får generera en exclude fil på allt som har kopierats och bygga på den allt eftersom.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback