6 999
contributi
(inserita categoria (tips&tricks)) |
S3v (discussione | contributi) Nessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
{{Versioni compatibili|Debian Lenny 5.0<br/>Debian Squeeze 6.0<br/>Debian Sid|}} | |||
=Introduzione= | |||
Scrivo questa breve guida per chi, come me, esegue più volte al giorno il comando: | Scrivo questa breve guida per chi, come me, esegue più volte al giorno il comando: | ||
<pre># apt-get update && apt-get dist-upgrade</pre> | <pre># apt-get update && apt-get dist-upgrade</pre> | ||
Riga 10: | Riga 11: | ||
* Un job di [[Utilizzo del servizio di scheduling Cron|cron]] che lancia lo script di notifica; | * Un job di [[Utilizzo del servizio di scheduling Cron|cron]] che lancia lo script di notifica; | ||
=Script per l'aggiornamento degli indici dei pacchetti= | |||
Questo script può essere inserito in | Questo script può essere inserito in <code>/etc/cron.hourly</code> per essere lanciato ogni ora; il suo funzionamento è banale: | ||
creare, come utente root, un file contenente le seguenti righe: | creare, come utente root, un file contenente le seguenti righe: | ||
<pre>#!/bin/sh | <pre>#!/bin/sh | ||
apt-get update &>/dev/null</pre> | apt-get update &>/dev/null</pre> | ||
salvare il file in | salvare il file in <code>/etc/cron.hourly</code> e renderlo eseguibile; se ad esempio lo abbiamo chiamato ''aggiorna'': | ||
<pre># chmod +x aggiorna</pre> | <pre># chmod +x aggiorna</pre> | ||
:'''Attenzione:''' A causa del namespace dei caratteri ridotto usato dal comando ''run-parts'' (che si occupa, in | :'''Attenzione:''' A causa del namespace dei caratteri ridotto usato dal comando ''run-parts'' (che si occupa, in <code>/etc/crontab</code>, di lanciare gli script), il nome che si può scegliere per gli script inseriti in <code>/etc/cron.hourly</code>, <code>/etc/cron.daily</code>, <code>/etc/cron.weekly</code> e <code>/etc/cron.monthly</code> può contenere solo caratteri che siano lettere maiuscole, lettere minuscole, numeri, trattini( - ) o underscore ( _ ), pena il fallimento del lancio degli script stessi. | ||
Il compito di questo script è soltanto quello di aggiornare la lista degli indici dei pacchetti, senza aggiornare il sistema. L'output e gli eventuali errori del comando ''apt-get update'' vengono soppressi. Per le mie necessità è sufficiente in quanto gli errori sono spesso dovuti all'irraggiungibilità dei | Il compito di questo script è soltanto quello di aggiornare la lista degli indici dei pacchetti, senza aggiornare il sistema. L'output e gli eventuali errori del comando ''apt-get update'' vengono soppressi. Per le mie necessità è sufficiente in quanto gli errori sono spesso dovuti all'irraggiungibilità dei repository, cosa in genere risolta in poco tempo. | ||
Se si vuol far in modo che lo script venga eseguito ad intervalli diversi dall'ora, è possibile inserire un semplice file di testo, contenente un job di cron, nella directory | Se si vuol far in modo che lo script venga eseguito ad intervalli diversi dall'ora, è possibile inserire un semplice file di testo, contenente un job di cron, nella directory <code>/etc/cron.d</code> oppure, in alternativa, inserire il job attraverso il comando: | ||
<pre># crontab -e</pre> | <pre># crontab -e</pre> | ||
In entrambi i casi il formato da utilizzare è quello di [[Utilizzo del servizio di scheduling Cron#Crontab_Command_settings|crontab]].<br/> | In entrambi i casi il formato da utilizzare è quello di [[Utilizzo del servizio di scheduling Cron#Crontab_Command_settings|crontab]].<br/> | ||
Questa è l'unica parte della guida in cui i comandi vanno dati con i permessi di root; i successivi passi vanno eseguiti attraverso i normali privilegi utente. | Questa è l'unica parte della guida in cui i comandi vanno dati con i permessi di root; i successivi passi vanno eseguiti attraverso i normali privilegi utente. | ||
=Script di notifica nella systray= | |||
Lo script che si occupa di far comparire la notifica nella systray fa uso di [http://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs:link | Lo script che si occupa di far comparire la notifica nella systray fa uso di [http://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs:link Kdialog]: | ||
<pre>#!/bin/bash | <pre>#!/bin/bash | ||
Riga 42: | Riga 43: | ||
: '''aptitude search ~U''' fornisce una lista (estratta dalla lista aggiornata ogni ora dal job di cron precedente) dei pacchetti che possono essere aggiornati; | : '''aptitude search ~U''' fornisce una lista (estratta dalla lista aggiornata ogni ora dal job di cron precedente) dei pacchetti che possono essere aggiornati; | ||
: '''wc -l''' prende l'output del comando precedente e ne conta le linee. In pratica conta il numero di pacchetti che possono essere aggiornati; | : '''wc -l''' prende l'output del comando precedente e ne conta le linee. In pratica conta il numero di pacchetti che possono essere aggiornati; | ||
: '''--display :0''' parametro che indica a | : '''--display :0''' parametro che indica a Kdialog di utilizzare il nostro server grafico; | ||
: '''--passivepopup''' parametro che indica a Kdialog di mostrare un popup di notifica contenente il testo specificato tra virgolette; | : '''--passivepopup''' parametro che indica a Kdialog di mostrare un popup di notifica contenente il testo specificato tra virgolette; | ||
: '''600''' numero che esprime, in secondi, il tempo per cui resta attiva la notifica nella systray; | : '''600''' numero che esprime, in secondi, il tempo per cui resta attiva la notifica nella systray; | ||
In maniera simile a quanto fatto con lo script precedente, salvare il file in una directory della nostra home ( | In maniera simile a quanto fatto con lo script precedente, salvare il file in una directory della nostra home (<code>~/scripts</code> ad esempio ) chiamandolo ''notifica'' (o in qualche altro modo) e renderlo eseguibile: | ||
<pre>$ chmod +x ~/scripts/notifica</pre> | <pre>$ chmod +x ~/scripts/notifica</pre> | ||
=Job di cron per lanciare lo script di notifica= | |||
Il job di cron per lanciare lo script precedente deve essere specificato nel formato di crontab: | Il job di cron per lanciare lo script precedente deve essere specificato nel formato di crontab: | ||
<pre>30 * * * * ~/scripts/notifica >/dev/null 2>&1</pre> | <pre>30 * * * * ~/scripts/notifica >/dev/null 2>&1</pre> | ||
Riga 57: | Riga 58: | ||
<pre>*/10 * * * * ~/scripts/notifica >/dev/null 2>&1</pre> | <pre>*/10 * * * * ~/scripts/notifica >/dev/null 2>&1</pre> | ||
=Conclusioni= | |||
Da questo momento in poi le notifiche degli aggiornamenti compariranno nella nostra systray. | Da questo momento in poi le notifiche degli aggiornamenti compariranno nella nostra systray. | ||
Per aggiornare il sistema sarà comunque necessario dare il comando: | Per aggiornare il sistema sarà comunque necessario dare il comando: | ||
Riga 66: | Riga 67: | ||
a seconda delle necessità. | a seconda delle necessità. | ||
=Documentazione= | |||
*[http://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs:link Kdialog] | *[http://techbase.kde.org/Development/Tutorials/Shell_Scripting_with_KDE_Dialogs:link Kdialog] | ||
*[http://manpages.debian.net/cgi-bin/man.cgi?query=crontab&sektion=5&apropos=0&manpath=Debian+5.0+lenny&locale=:link man crontab] | *[http://manpages.debian.net/cgi-bin/man.cgi?query=crontab&sektion=5&apropos=0&manpath=Debian+5.0+lenny&locale=:link man crontab] |
contributi