Šta je novo?

Pomoc BASH prijatelja

Znaci skripta radi, samo je vreme problem? Zasto onda ne napraviti cron job koji ce pokretati skriptu jednom dnevno na serveru?
 
A zasto da se ne koristi ls?
Sa ls imas mogucnost da fajlove obradis po redosledu kreiranja na lokalnom sistemu (ili po nekom drugom), dok bez ls, redosled je uvek po imenu.
Ja sam imao realan slucaj, kada je redosled obrade bio vazan. Bez ls, ne vidim kako bih to postigao.
Pozdrav

Zato što je ls vrlo nepredvidljiva komanda čiji output zavisi između ostalog i od locale-a, zatim word splitting može opasno da izbaguje skriptu kada se iterira nad nekim fajlovima koji nisu jedna reč (2017 januar.pdf recimo). Ls je zamišljen da ga koriste ljudi, a ne da se koristi u skriptama. Ako je baš neophodno da se vrši nešto nad fajlovima koji su stariji od X onda se koristi find
Kod:
find /path/to/dir -type f -mtime +1 -name "*.gpg" # pronalazi fajlove starije od 24h
find /path/to/dir -type f -mmin +60 -name "*.gpg" # starije od 60 minuta

Za malo detaljnije objašnjenje pogledaj http://mywiki.wooledge.org/BashGuide/TestsAndConditionals
Ceo taj wiki je zlata vredan prilikom učenja bash-a.
 
Ali ni sa find ne mozes da sortiras fajlove po vremenu nastanka, napr.
I da budem iskren, prvi put cujem da se Unix komande dele na one namenjene za ljude i one namenjene za skriptove.
Pozdrav
 
Poslednja izmena:
Pokupi datum, nadji jucerasnji dan i zapisi taj datum u razlicitim formatima.. Npr:
D1 = DDMMYYYY
D2 = DDMMYY
D3 = YYMMDD

u skirpti, pokupi sve fajlove iz foldera, i za svaki fajl trazi da li postoji podstring koji odgovara D1, D2, ili D3. Ukoliko postoji, obradi file i prebaci ga na drugo mesto.
Nije mi jasna cemu onda provera vremena, ako je datum kriterijum za obradu? Zasto uopste proveravas vreme?

Nisam stigao da se javim poslednja dva dana, radio sam svoj posao, mrezu. Nista skriptovi, samo ssh ili konzolni kabl i gomila uredjaja i ne boli glava :)
A sad me opet ceka ovo cudo...

Vreme je bitno zbog redosleda upisa podataka u bazu. Oracle bazu. Sad cu da probam predlozeno, pa javim sta sam uradio.
 
^Kad kazes vreme, da li mislis na vreme koje se nalazi u imenu fajla ili na vreme kad je fajl stigao na tvoj server?

Da li fajlovi uvek stizu na server po redosledu kreiranja ili ne? Napr. fajl B_20170310_080000.gpg moze da stigne pre fajla A_20170310_070000.gpg ili ne moze?

Pozdrav
 
Ako je vreme bitno onda je prvi korak da sa partnerima dogovoriš da nazivi fajlova budu u samo jednom formatu, a ne da ti, kao neko ko nije admin, moraš izmišljaš kreativne načine sortiranja zbog njih.
 
^Kad kazes vreme, da li mislis na vreme koje se nalazi u imenu fajla ili na vreme kad je fajl stigao na tvoj server?

Da li fajlovi uvek stizu na server po redosledu kreiranja ili ne? Napr. fajl B_20170310_080000.gpg moze da stigne pre fajla A_20170310_070000.gpg ili ne moze?

Pozdrav

Vreme kreiranja. Ludi Ameri tako krste fajl: CERT_tvcr010317JU_0752.GPG. Ali imam i ovo: CERT_tvcr010317sdJU_0752.GPG Oba fajla su na server stigla u isto vreme, razlika je samo u velicini. Pitao sam db admina sta je ovo sd u imenu fajla i dobio sledeci odgovor: A, to ti je same day. Bas te briga, samo ih otpakuj i prebaci meni, znam ja sta cu sa njima.

Fajlovi dolaze po redu, dakle ne moze (u tvom primeru) fajl B da stigne pre fajla B.
 
Ako je vreme bitno onda je prvi korak da sa partnerima dogovoriš da nazivi fajlova budu u samo jednom formatu, a ne da ti, kao neko ko nije admin, moraš izmišljaš kreativne načine sortiranja zbog njih.

Ovo, na zalost, ne moze. Jednom usvojena konvencija ne moze da se menja :wall:
 
Vrh Dno