Šta je novo?

Uvođenje reda na fajl serveru

Troublemaker

Čuven
Učlanjen(a)
01.02.2002
Poruke
884
Poena
620
Moja oprema  
Miš & tastatura
Microsoft Bluetooth Ergonomic Mouse & Logitech MX Keys Mini
Laptop
Lenovo ThinkBook 15 Gen 2
Tablet
Lenovo Yoga Pad Pro (Yoga Tab 13)
Mobilni telefon
Samsung Galaxy Z Fold 5
Pametni uređaji
Mi Air Purifier 3H
Steam
https://steamcommunity.com/id/acabre
Pristup internetu
  1. Optički internet
U firmi imamo fajl server na Win 2003 R2 platformi.
Želeo bih da sve fajlove starije od pet godina prebacim na neku lokaciju po izboru i interesuje me kako bih to mogao da uradim?
Skripte, besplatni alati ili alati koji se plaćaju, sve dolazi u obzir.

U "Storage Reports Management" imam izveštaj koji se zove "Least Recently Accessed Files" i on lepo prikaže 1000 fajlova po odabranom vremenskom kriterijumu, ali ko normalan želi da prebacuje tolike fajlove ručno.
 
Pa to je pola sata posla iz Total Commandera, više ćeš vremena izgubiti instalirajuči i podešavajući namenski program. E ako ćeš to češće raditi, onda se isplati potrošiti malo vremena za instalaciju i podešavanje, da bi posle sve završavo sa par klikova mišom.
 
forfiles -p "D:\shared" -s -m *.* -d <broj dana> -c "cmd move @path"
 
Baš sam se ponadao, ali na žalost dobijam više grešaka ERROR: The filename or extension is too long.
forfiles -p "D:\shared" -s -m *.* -d <broj dana> -c "cmd move @path"

pdetlic nemoj da si tako škrt na rečima, kako to izvesti u Total Commander-u?
 
Otvoriš u prvom prozoru odake kopiraš, sortiraš po datumu. U drugom izabereš gde prebacuješ fajlove (nešto tipa Old_BAC_17_03_2015). Otvori i pod direktorijume.
Vratiš su u prvi prozor, izabereš direktorijum, selektuješ sve fajvlove starije od 5 godina. Klik na F6 (Move), kad se otvori prozor klik F2 (Queue) da dodaš fajlove na listu za izvršenje (da ne čekaš završetak prenosa pogotovo ako šalješ preko sporije veze i velike fajlove).
Ponoviš postupak za sledeći direktorijum.
Zavisi koliko imaš direktorijuma posao gotov za par minuta i usput obrišeš razne gluposti koje je stalno nalazim.
 
Da li se na taj način čuva i struktura foldera?
 
Ne, moraš da napraviš foldere sam ili da iskopiraš (ne premestiš) sve foldere i fajlove. Pošto sam odrastao sa NC i NU, još iz vremena DOS-a, ja sve radim preko tastature, maltene napamet.
 
Za ozbiljniju administraciju, resenje je u stilu ovoga sto je isnogood predlozio. Napravis komandni fajl i samo ga pokrenes kad zatreba. Ako nisi tu, uvek nekome mozes da objasnis koji cmd fajl treba da pokrene.
Sve ostalo je u domenu jednokratne upotrebe ili ponavljanja istih akcija - gubljenje vremena.

To sto komanda nije proradila iz prve, treba da bude samo dodatni podstrek da se time pozabavis i da je sredis do kraja.

Pozdrav
 
Šta ako imam na fajl serveru 681.298 fajlova u 70.720 foldera sa nenormalno razgranatom folderskom strukturom. Koliko ja vidim ovo ne ide u dubinu već bi ja morao da ulazim u svaki folder što je besmislica. Ili sam ja pogrešno razumeo?
Otvoriš u prvom prozoru odake kopiraš, sortiraš po datumu. U drugom izabereš gde prebacuješ fajlove (nešto tipa Old_BAC_17_03_2015). Otvori i pod direktorijume.
Vratiš su u prvi prozor, izabereš direktorijum, selektuješ sve fajvlove starije od 5 godina. Klik na F6 (Move), kad se otvori prozor klik F2 (Queue) da dodaš fajlove na listu za izvršenje (da ne čekaš završetak prenosa pogotovo ako šalješ preko sporije veze i velike fajlove).
Ponoviš postupak za sledeći direktorijum.
Zavisi koliko imaš direktorijuma posao gotov za par minuta i usput obrišeš razne gluposti koje je stalno nalazim.
 
Dobro si razumeo,to nije resenje za tebe!
 
Komanda je super, ali dos ne podržava ime fajla duže od 8 karaktera i ekstenzije duže od 3 karaktera, to je i ono što greška kaže. Ako neko zna kako da se ovo reši neka kaže.
Za ozbiljniju administraciju, resenje je u stilu ovoga sto je isnogood predlozio. Napravis komandni fajl i samo ga pokrenes kad zatreba. Ako nisi tu, uvek nekome mozes da objasnis koji cmd fajl treba da pokrene.
Sve ostalo je u domenu jednokratne upotrebe ili ponavljanja istih akcija - gubljenje vremena.

To sto komanda nije proradila iz prve, treba da bude samo dodatni podstrek da se time pozabavis i da je sredis do kraja.

Pozdrav
 
Ne bih se bas slozio da DOS u novijim verzijama Windows-a ne podrzava dugacka imena fajlova. Za probu, pokreni sledecu komandu u direktorijumu u kome postoji bar jedan fajl sa duzim imenom:
forfiles /m *.* /c "cmd /c dir @file"

Probja prvo da izlistas fajlove koji ti trebaju:
forfiles -p "D:\shared" -s -m *.* -d <broj dana>

Posle ove komande bi trebao da dobijes spisak fajlova. Ako ovo radi, onda je problem u drugom delu komande.

Pozdrav
 
Probaj robocopy(komandu) u win7+ dolazi sa sistemom.
 
OK, sistemom eliminacije sam utvrdio da tvoja komanda ima pogrešnu sintaksu, a kasnije sam proverio i na netu.
Umesto -d <broj dana> na kraju, treba da stoji /d -<broj dana>
Dakle prvi deo komande treba da glasi forfiles /p "D:\shared" /s /m *.* /d -<broj dana>

Nego da li je ikako moguće očuvati foldersku strukturu prilikom prebacivanja fajlova. Ovako nema nikakve poente. Brdo fajlova, za koje nemam pojma odakle su inicijalno došli.

Ne bih se bas slozio da DOS u novijim verzijama Windows-a ne podrzava dugacka imena fajlova. Za probu, pokreni sledecu komandu u direktorijumu u kome postoji bar jedan fajl sa duzim imenom:
forfiles /m *.* /c "cmd /c dir @file"

Probja prvo da izlistas fajlove koji ti trebaju:
forfiles -p "D:\shared" -s -m *.* -d <broj dana>

Posle ove komande bi trebao da dobijes spisak fajlova. Ako ovo radi, onda je problem u drugom delu komande.

Pozdrav
 
Poslednja izmena:
Evo ti ga i Linux/Unix način, ako nekome zatreba:

find /folderi/za/pretragu -ctime 43800 -exec mv {} /folder/gde/ih/potrpaš \;

S tim što *nix ne pamti vreme kada je fajl kreiran, već samo kada je zadnji put modifikovan, tako da komanda neće pokupiti i fajlove koji su editovani u zadnjih 5 godina (43800 sati). Manite se Windows-a na serveru, niko se od toga nije usrećio. :d
 
^ A sta onda znace opcije -atime i -mtime :)

Pozdrav

-atime je vreme od zadnjeg pristupa, a -mtime vreme od zadnje modifikacije. -ctime je vreme od zadnje promene statusa fajlsistem objekta, koji se ne menja editovanjem fajla (moja greška, pisao sam na brzaka), ali se menja recimo promenom permisija ili vlasništva nad fajlom.

Kad se već ispravljam, da dodam da bi u komandu bilo pametno dodati i opciju -type f da bi find pronašao samo fajlove, a ne i direktorijume, linkove i sl., kao i dodati single quotes navodnike oko {} u sklučaju da se u imenu fajla nalazi prazno slovno mesto ili drugi slovni znak sa specijalnim značenjem za školjku. Dakle ovako:

find /folderi/za/pretragu -type f -ctime 43800 -exec mv '{}' /folder/gde/ih/potrpaš \;
 
@morbius: za veliki broj fajlova, verzija sa -exec opcijom je prilicno spora, jer pokrece mv komandu za svaki fajl posebno. Koriscenjem xargs komande moze znatno da se ubrza ceo proces. Otprilike ovako:

find /folderi/za/pretragu -type f -ctime 43800 | xargs -I {} -n 100 mv {} /folder/gde/ih/potrpaš/{}

Ovde ce se pokretati jedan mv za svakih 100 fajlova. Vrednost -n parametra (100 u primeru) moze se empirijski odrediti - zavisno koliko su dugacka imena fajlova. Dobro je to sto ce xargs sam smanjiti efektivnu vrednost parametra ako je inicijalna vrednost prevelika.

No, da se vratimo na originalni problem: da li je prilikom prebacivanja fajlova potrebno zadrzati originalnu strukturu direktorijuma ili mogu svi fajlovi da se prebace u jedan odredisni direktorijum?

Pozdrav
 
Potrebno je sačuvati originalnu strukturu direktorijuma.
No, da se vratimo na originalni problem: da li je prilikom prebacivanja fajlova potrebno zadrzati originalnu strukturu direktorijuma ili mogu svi fajlovi da se prebace u jedan odredisni direktorijum?

Pozdrav
 
@rafiki
Zapravo možeš da grupišeš izlaz i u -exec koristeći sintaksu {} + umesto {} \; , ali meni je nekako uvek sigurnije kada ih šaljem jedan po jedan. Ima komandi koje jednostavno neće da prihvate input duži od neke vrednosti, ni xargs ne pomaže. Ali u pravu si, odosmo sa pričom na drugu stranu.
 
Poslednja izmena:
Potrebno je sačuvati originalnu strukturu direktorijuma.

Onda ili robocopy ili skript sa forfiles komandom i jednom spoljnjom petljom koja ce se rekurzivno spustati kroz sve nivoe ulazne strukture direktorijuma.

Off-topic:
I ja najcesce koristim find sa -exec opcijom - to mi nekako dodje najlakse a tako sam i navikao. No, kad sam dosao u situaciju da treba da prebacim nekih 1.000.000 fajlova iz 10-tak poddirektorijuma na NFS FS, shvatio sam da nesto mora da se ubrza :)

Pozdrav
 
Ako do sada nisi uspeo sada imam vremena mogu ti napisem. Do sada sam samo "upadao" na forum.

Offtopic:
Ja forfiles koristim za brisanje matorih sadrzhaja, a robocopy za distribuciju fajlova kroz mrezhu poshto za razliku od xcopy podrzhava ogranichavanje brzine.
 
Poslednja izmena:
A što ne bi moglo i iz Total Commander-a uz očuvanje strukture foldera: Selektuješ sve foldere iz root-a, kažeš move (tj F6), u move prozoru klikneš na plusić pored Only files of this type, otvoriće se prozor kao za pretragu u kome pod advanced možeš da definišeš datum, ta pretraga se sačuva kao novi templejt i to je to. TC će move-ovati samo one fajlove koji match-uju pretragu uz zadržavanje strukture foldera.

Čini mi se da ovo radi tek od verzije 8. Na najnovijoj 8.51 radi svakako.
 
Izgleda da mi ova komanda radi posao, samo moram da je bolje testiram.
robocopy F:\xxx G:\xxx /E /COPYALL /MOVE /R:1 /W:1 /MINAGE:20100101
 
I ovo sam probao i rekao bih da radi upravo ono što mi treba.
A što ne bi moglo i iz Total Commander-a uz očuvanje strukture foldera: Selektuješ sve foldere iz root-a, kažeš move (tj F6), u move prozoru klikneš na plusić pored Only files of this type, otvoriće se prozor kao za pretragu u kome pod advanced možeš da definišeš datum, ta pretraga se sačuva kao novi templejt i to je to. TC će move-ovati samo one fajlove koji match-uju pretragu uz zadržavanje strukture foldera.

Čini mi se da ovo radi tek od verzije 8. Na najnovijoj 8.51 radi svakako.
 
Nazad
Vrh Dno