Organisoin tässä juuri videoarkistoamme ja harmikseni huomasin, että yhden sarjan hakemistossa olivat kaikki videotiedostot (jaksot) omissa alihakemistoissaan. Tapanani on kuitenkin pitää yhden sarjan jaksot kaikki samassa alihakemistossa. Yksittäisiä hakemistoja oli noin 30, joten manuaalinen työ (siirry hakemistoon -> leikkaa tiedosto -> siirry ylähakemistoon -> liitä tiedosto -> poista alihakemisto) olisi ollut liian vaivalloista. Siksipä päätin hieman muistella komentorivioppeja ja -knoppeja ja äkkiä tekaisin seuraavanlaisen onelinerin, joka hoiti koko homman hetkessä:
olli@olohuone:$ for i in `ls -d */`; do mv $i*.avi ./ && rm $i -r; done
Eli ls -d hakee hakemiston kaikki alihakemistot, joita sitten käydään for-silmukassa läpi. Kunkin alihakemiston kohdalla siirretään kaikki sen sisältämät .avi-päätteiset tiedostot nykyiseen hakemistoon ja lopuksi poistetaan alihakemisto. Lovin’ it!
Otos-palvelun palvelimen kello ei pysynyt ajassa. Lukuisten kokeilujen jälkeen date-komento näytti edelleen kellon olevan päin honkia, vaikka ntpdate näyttikin päällisin puolin toimivan. Pitkällisen googletuksen jälkeen vastaan tuli kuitenkin tämä sivusto, jonka ohjeiden mukaan sain kellon viimein aikaan. Eli tiedostoon /proc/sys/xen/independent_wallclock arvo 1 oletusarvo nollan sijaan ja sen jälkeen ntpdate alkoi toimia normaalisti. Lopuksi vielä simppeli joka tunti toistuva cron-työ, joka pitää kellon jatkossakin ajassa:
# crontab -e
Ja tiedostoon rivi
@hourly /usr/sbin/ntpdate -us 0.fi.pool.ntp.org 1.fi.pool.ntp.org 2.fi.pool.ntp.org
Huomioitavaa on, että ntpdate asentuu tuonne /usr/sbin-hakemistoon, jolloin crontab vaatii luonnollisesti koko polun toimiakseen. Tuo @hourly on kätevä taikasana (lue lisää: http://team.macnn.com/drafts/crontab_defs.html) sen sijaan, että kirjoittaisi normaalin * * * * *-rimpsun.