Permalänk

Difirens av filer

Tjena. Jag vet inte om någon kan hjälpa mig där ute. Men har ju något jag grubblar över.

Vill att om jag pratar med fil.mov så ska den kika igenom filen och säga då om fil.mov är 188 kb. Så ska den checka vidare på samma fil. Och kolla om denna har ökat i storlek.

är den då på samma värde efter 5 försök så ska denna zippa filen och lägga denna på en annan partion.

För då är filen klar om filen inte växt på 5 - 10 försök med samma värde.

Men är det någon där ute som vet något bra sätt att göra detta på?

jag fundera en stund på diff men har inte riktigt hajat hur de funkar.

typ diff fil.mov >> text.text (lägger in någon rad 188) något script läser då 188 och kollar om samma värde upprepas 10 gånger och sedan gör en slutlig zip.

Är Oerhört tacksam om någon kan komma med lite tips.

Permalänk
Medlem

Mov är väl redan komprimerat?

Permalänk
Medlem

Det är väl bättre att kontrollera om någon process har filen öppen för skrivning än att sitta och glo på storleken? Detta kan lösas med program som fuser(1), lsof(1) och borde även gå att lösa med ramverk som t.ex. inotify(7). Ett annat alternativ är att använda stat(1) för att jämföra ctime (den tid då filen sist modifierades).

Permalänk

Det han sa det första ang Mov så var det ett exempel.

Detta är tyvärr en process som inte syns då den är inbakad i ett annat program.

Så det där sättet funkar dessvärre inte på det jag vill.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av razerrazer

Detta är tyvärr en process som inte syns då den är inbakad i ett annat program.

Så det där sättet funkar dessvärre inte på det jag vill.

Det finns alltid en process som har en fildeskriptor öppen till filen om det skrivs till den, detta oavsett hur "inbakad" den är. Sålänge en process (och i det här fallet spelar det troligen ingen roll vilken process det är) har filen i fråga öppen i write-mode är den inte klar. Det som kan tänkas sätta käppar i hjulet för de metoder jag listade är om programmet i fråga stänger filen mellan skrivningarna men det förefaller osannolikt korkat att det skulle göra så.

Permalänk

Om du bortser ifrån den bättre lösningen med att kolla om någon process har en fildeskriptor öppen till filen kan du istället för att kolla om storleken ändrats kolla huruvida någon hash-summa ändrats.

Det vill säga:

$ shasum path/to/file eller $ crc23 path/to/file

Om filen är stor kan det dock möjligen ta en stund.

Som sagt är det dock nog både snabbare, vid exekvering, och bättre att kolla om någon process har en fildeskriptor öppen till filen.