mercoledì 20 gennaio 2010

cron:automatizzare i processi

Problema: Avviare automaticamente l'esecuzione di un processo.

Soluzione: L'esecuzione automatica di programmi sulla base di una agenda stabilita può essere facilmente realizzata in ambiente “unix” grazie al comando “crontab”. Per esempio immaginiamo di aver a disposizione uno script “ backup.sh” per eseguire la copia di backup di una selezione di importanti documenti su di un disco esterno. Per cominciare creiamo una directory nascosta tipo “.cron.daily” nella nostra home, copiamoci il file “ backup.sh” dentro e rendiamolo eseguibile

  1. mkdir .cron.daily

  2. cp backup.sh /home/nome_utente (sostituire col vostro nome utente) .cron.daily/

  3. sudo chmod +x /home/nome_utente/.cron.daily/backup.sh


I processi che vengono eseguiti da cron sono elencati in appositi file. A livello di sistema i processi sono elencati nel file /etc/crontab, a livello utente è però possibile creare nella home un file crontab, per esempio possiamo creare un file nascosto .crontab

Ecco un crontab campione

# minuti ore mday month wday comando

15 03 * * * sh /User/nome_login/.cron.daily/backup.sh

15 03 1 * * sh /User/nome_login/.cron.daily/Sample1

15 03 * * 6 sh /User/nome_login/.cron.daily/Sample2

*/15 03 * * * sh /User/nome_login/.cron.daily/Sample3

Nella prima linea ci sono le intestazioni dei file che specificano il significato delle diverse entry che iniziano dalla seconda linea. Le voci sono raggruppate in colonne separate da un tab.

La seconda linea corrisponde all'esecuzione dello script di backup, lanciato alle 03:15 tutti i giorni della settimana (wday) per tutti i giorni (mday) di tutti i mesi (month). Gli asterischi significano sempre.

Ci sono anche altri esempi:

Linea 3: esegue il comando sample 1 alle 3:15 soltanto il 1 giorno di ogni mese.

Linea 4: esegue il comando sample 2 alle 3:15 de 6 giorno ogni della settimana.

Linea 5: Esegue il comando sample 3 ogni 15 minuti.

Alle variabili di cron tab è possibile assegnare i seguenti parametri

"minuti" 0-59, "ore"0-23, "mday2 1-31, "wday" 0-7 (0 e 7 = domenica), oppure con le prime 3 lettere del nome del giorno, (es. “Thu” per Thursday), month 1-12, oppure con le prime tre lettere del nome del mese (es. “Jan” per “January”).

É possibile settare anche intervalli o sequenze (separati da virgole). Per esempio, 8-11 nella colonna delle ore verrà associato l'esecuzione di un comando alle 8, 9, 10, e 11. Una sequenza come 1,2,5,9 nella colonna delle ore verrà associata alla esecuzione dello script alle ore 1, 2, 5, e 9.

Una volta creati e posizionati crontab e i relativi script non resta che avviare il processo digitando:

crontab /Users/nome_login/.crontab

per fermare cron basta eseguire il comando:

crontab -r

Mentre per stampare a schermo la lista dei processi gestiti da cron basta digitare

cronta -l

é importante periodicamente controllare quali processi sono in funzione dal momento che crontab può occasionalmente fermarsi ad esempio in occasione dell'aggiornamento del software.


sabato 19 dicembre 2009

mplayer



Siccome ho iniziato a studiare l'incredibile suite multimediale opensource mplayer/mencoder con questo articolo inizia una rubrica dove descrivo e annoto i miei progressi. In questo primo lavoro descrivo uno script che permette di registrare da un ingresso composito







mencoder tv:///2 -tv driver=v4l2:input=1:norm=pal:width=480:height=360:outfmt=yuy2:device=/dev/video0:adevice=/dev/dsp:audiorate=32000:forceaudio:forcechan=1:buffersize=80 -ovc lavc -lavcopts threads=3:vcodec=mpeg4:vbitrate=1200:keyint=30 -oac mp3lame -lameopts br=128:cbr:mode=3:vol=8 -ffourcc divx -endpos 120 -o VHS.avi

tv:/// setta l'input della scheda di acquisizione, il valore 2 restituisce l'ingresso composto, almeno per la mia scheda saa7134

driver=v4l2:input=1:norm=pal:width=480:height=360:outfmt=yuy2:device=/dev/video0:adevice=/dev/dsp:audiorate=32000:forceaudio:forcechan=1:buffersize=80

-tv questa opzione permette di gestire diverse proprietà della scheda di acquisizione

driver=v4l2 permette di scegliere il driver d'ingresso , nel nostro caso v4l2

input Specifica l'ingresso, default: 0 (TV), 1 sta per ???

norm=pal standard TV europeo, le alternative sono PAL, SECAM, NTSC

width=480:height=360 setta le dimensioni della finestra

outfmt=<value> Specifica l'output del tuner utilizzando un preset supportato dal driver V4L (yv12, rgb32, rgb24, rgb16, rgb15, uyvy, yuy2, i420)

device=/dev/video0 specifica il device video

adevice=/dev/dsp seleziona l'audio device, sebbene stando alla manpage di mplayer la formula /dev/xxx dovrebbe essere utilizzata con OSS nella mia esperienza funziona molto bene

forceaudio Cattura l'audio sebbene non sia rivelato nessun device audio da v4l (forse per questo funziona bene l'opzione precedente).

Forcechan=1 Questa opzione permette di forzare le registrazioni in stereo o mono (rispettivamente valori 1 e 2)

buffersize=80 Dimensione massima del buffer espressa in mb (default=dinamico)

audiorate=32000 setta la cattura audio al bitrate di 32000

-ovc lavc -lavcopts threads=3:vcodec=mpeg4:vbitrate=1200:keyint=30

− ovc lavc (−lavcopts) Codifica video utilizzando le libreria libavcodec

threads=3 setta il numero massimo di “ threads” da utilizzare, il valore di default è 1 (1-8) potrebbe avere un leggero effetto negativo sulla valazione del motion

vcodec=mpeg4 indica lo specifico codec da utilizzare, l'opzione di default è mpeg4, ecco i vari codec utilizzabili

asv1 (ASUS Video v1), asv2 (ASUS Video v2), dvvideo (Sony Digital Video), ffv1 (FFmpeg’s lossless video codec), ffvhuff (nonstandard 20% smaller HuffYUV using YV12), flv (Sorenson H.263 used in Flash Video ), h261 (H.261), h263 (H.263), h263p (H.263+), huffyuv (HuffYUV), libtheora (Theora) libx264 (x264 H.264/AVC MPEG-4 Part 10), libxvid (Xvid MPEG-4 Part 2 (ASP)), ljpeg (Lossless JPEG), mjpeg (Motion JPEG), mpeg1video (MPEG-1 video), mpeg2video (MPEG-2 video), mpeg4 (MPEG-4 (DivX 4/5)), msmpeg4 (DivX 3), msmpeg4v2 (MS MPEG4v2), roqvideo (ID Software RoQ Video), rv10 (an old RealVideo codec), snow (also see: vstrict) (FFmpeg’s experimental wavelet-based codec), svq1 (Apple Sorenson Video 1), wmv1 (Windows Media Video, version 1 (AKA WMV7)), wmv2 (Windows Media Video, version 2 (AKA WMV8))

vbitrate=1200 imposta il bitrate a 1200 Kbit

keyint=30 setta il massimo intervallo fra gli IDR-frames (default=250). Valori più grandi salvano i bits cosi che migliorano la qualità al costo delle precisione di ricerca

-oac mp3lame -lameopts br=128:cbr:mode=3:vol=8

-oac mp3lame codifica in mp3 utilizzando la libreria lame

-lameopts serve a settare le opzione di lame

-br=128:cbr nel modalità CBR indica il bitrate/s in kbps, mentre nella modalità VBR indica il valore minimo per frame i valori permessi sono <32-384> per cbr e >112 per VBR.

mode=3 setta la modalità audio come mono, (mode=<0−3>, 0 stereo, 1 joint-stereo, 2 dualchannel, 3 mono)

vol=8 audio input gain range, vol=<0−10>

-ffourcc divx puo essere utilizzata per sovrascrivere il video fourcc del file output

-endpos 120 fine della registrazione dopo 120 secondi,

-o VHS.avi salva tutto nel file -0 VHS.avi




giovedì 17 dicembre 2009

esportare le mapage

Molto spesso quando si consultano corpose mapage di programmi complessi come ad esempio mplayer/mencoder si sente l'esigenza esportarle in formati più gestibili magari anche adatti alla stampa come il pdf. Questa operazione è in realtà molto semplice basta eseguire i seguenti comandi da shell

man -t mplayer> mplayer.ps

ps2pdf mplayer2.ps mplayer2.pdf

lunedì 23 novembre 2009

Result Code: NS_ERROR_FAILURE (0x80004005) Component

Ho provato ad installare la verione 3.0.12 r54655 per MacOSX di VirtualBox

Il programma all'avvio della macchina virtuale anadav in crash mostrando il seguente messaggio:


ERRORE

Result Code:

NS_ERROR_FAILURE (0x80004005)

Component:

Console

Interface:

IConsole {0a51994b-cbc6-4686-94eb-d4e4023280e2}

,,,,,,,,



Soluzione

Editare il file xml della macchina virtuale impostando il valore HardwareVirtEx come falso .


Path del file

/Users/username/Library/VirtuaBox/Machines/nome_macchina/nome_macchina.xml


Voce del file da editare.


<Hardware>

<CPU count="1">

<HardwareVirtEx enabled=" false"/>

<PAE enabled="true"/>

</CPU>


domenica 25 ottobre 2009

aumentare la velocità di avvio di openoffice

Oggi vi parlerò di un sistema per aumentare la velocità di startup di openoffice che io personalmente trovo tremendamente lunga. Bisogna andare nel munu strumenti e poi selezionare la voce opzioni. Quindi spostarsi nel menu memoria principale ed settare i paramentri per le seguintui voci come illustrato qui di seguito:


chache grafica

usa per openoffice 128 (o anche di + sulla base della vostra scheda video=

Memoria per oggetto 20

Abilitare il quickstart sulla barra delle applicazioni


Inoltre per aumentare ulteriormente la velocità si può disabilitare l'utilizzo del java run time dal sotto menu java



lunedì 12 ottobre 2009

backup sulle condivizioni windows

Oggi vi parlerò di un sistema che ho recentemente utilizzato per copiare i file dalla mia home ad una condivisione smb


Dipendenze: sono tutte presenti nei repo quindi installabili mediante synaptic

  1. rsync

  2. grsync

  3. smbfs



sudo mount.cifs //indirizzo IP/cartella condivisa /mnt -o user=nome user


una volta eseguito il mount verificare che la directory è stata montata effettivamente utilizzando Nautilus e per finire


Per finire lanciare la comodo interfaccia grafica di rsync scivando in un terminale sudo grsync


sabato 3 ottobre 2009

annotare su PDF a mano libera


Oggi voglio parlarvi di tre interessanti applicazioni:
  1. xournal

  2. gournal

  3. jarnal (cross platform)


Le tre applicazioni, sostanzialmente equivalenti, permettono la scrittura di testi con la tastiera e a mano libera utilizzando una tavoletta grafica o il mouse. Inoltre permettono anche di scrivere note, ed evidenziare i test testo sui file in formato PDF.

Il livello di funzioni fornite da questi programmi non ha nulla da invidiare a blasonati software proprietari del calibro di “Microsoft Windows Journal”, “Mimeo whiteboarding” e “Palm notepad”:

  • Selezione multipla;

  • Sctittura a mano libera;
  • Matite di diverse dimensioni: grandi, medie e fini;

  • Gomma;

  • Evidenziatore;

  • Digitazione testo;

  • undo/redo;

  • Inserire immagini;

  • Caricare un file come background;




Lettori fissi