6 999
contributi
S3v (discussione | contributi) Nessun oggetto della modifica |
S3v (discussione | contributi) Nessun oggetto della modifica |
||
Riga 5: | Riga 5: | ||
Servono fondamentalmente tre cose: | Servono fondamentalmente tre cose: | ||
* Un job di cron che effettua la risincronizzazione dei file contenenti gli indici dei pacchetti; | * Un job di [[Utilizzo del servizio di scheduling Cron|cron]] che effettua la risincronizzazione dei file contenenti gli indici dei pacchetti; | ||
* Uno script per notificare nella systray gli aggiornamenti eventualmente trovati; | * Uno script per notificare nella systray gli aggiornamenti eventualmente trovati; | ||
* Un secondo job di cron che lancia lo script precedente; | * Un secondo job di cron che lancia lo script precedente; | ||
Riga 12: | Riga 12: | ||
Questo primo job di cron può essere inserito in ''/etc/cron.hourly'' per essere lanciato ogni ora; il suo funzionamento è banale: | Questo primo job di cron può essere inserito in ''/etc/cron.hourly'' per essere lanciato ogni ora; il suo funzionamento è banale: | ||
creare 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 e renderlo eseguibile; se ad esempio lo abbiamo chiamato ''aggiorna'': | salvare il file in ''/etc/cron.hourly'' e renderlo eseguibile; se ad esempio lo abbiamo chiamato ''aggiorna'': | ||
<pre># chmod +x aggiorna</pre> | <pre># chmod +x /aggiorna</pre> | ||
Il compito di questo job è soltanto quello di aggiornare la lista degli indici dei pacchetti, senza aggiornare il sistema. L'output e gli eventuali errori del comando vengono soppressi. Per le mie necessità è sufficiente in quanto gli errori sono spesso dovuti all'irraggiungibilità dei repo, cosa in genere risolta in poco tempo. | Il compito di questo job è soltanto quello di aggiornare la lista degli indici dei pacchetti, senza aggiornare il sistema. L'output e gli eventuali errori del comando vengono soppressi. Per le mie necessità è sufficiente in quanto gli errori sono spesso dovuti all'irraggiungibilità dei repo, 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 job nella directory ''/etc/cron.d'' secondo il formato di [[Utilizzo del servizio di scheduling Cron#Crontab_Command_settings|crontab]]. | Se si vuol far in modo che lo script venga eseguito ad intervalli diversi dall'ora, è possibile inserire un job nella directory ''/etc/cron.d'' secondo il formato di [[Utilizzo del servizio di scheduling Cron#Crontab_Command_settings|crontab]]. | ||
Questa è l'unica parte 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=== | ===Script di notifica nella systray=== | ||
Lo script che si occupa di far comparire la notifica nella systray fa uso di | 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 34: | Riga 36: | ||
exit</pre> | exit</pre> | ||
: '''aptitude search ~U''' fornisce una lista (estratta dalla lista aggiornata ogni ora dal job di cron precedente) dei pacchetti che possono essere aggiornati | : '''NUM''' variabile che conterrà il numero di pacchetti aggiornabili; | ||
: '''wc -l''' prende l'output del comando precedente e ne conta le linee. In pratica conta il numero di 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; | ||
: '''--display :0''' parametro che indica a kdialog di utilizzare il nostro server grafico | : '''wc -l''' prende l'output del comando precedente e ne conta le linee. In pratica conta il numero di pacchetti che possono essere aggiornati; | ||
: '''--passivepopup''' parametro che indica a Kdialog di mostrare un popup di notifica contenente il testo specificato tra virgolette | : '''--display :0''' parametro che indica a kdialog di utilizzare il nostro server grafico; | ||
: '''600''' numero che esprime, in secondi, il tempo per cui resta attiva la notifica nella systray | : '''--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; | |||
In maniera simile a quanto fatto con lo script precedente, salvare il file in una directory della nostra home (~/scripts ad esempio ) chiamandolo ''notifica'' (o in qualche altro modo) e renderlo eseguibile: | In maniera simile a quanto fatto con lo script precedente, salvare il file in una directory della nostra home (''~/scripts'' ad esempio ) chiamandolo ''notifica'' (o in qualche altro modo) e renderlo eseguibile: | ||
<pre>$ chmod +x ~/scripts/notifica</pre> | <pre>$ chmod +x ~/scripts/notifica</pre> | ||
Riga 46: | Riga 49: | ||
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> | ||
che può essere inserito dopo aver dato | che può essere inserito dopo aver dato il comando: | ||
<pre>$ crontab -e</pre> | <pre>$ crontab -e</pre> | ||
Questo job verrà lanciato ogni 30 minuti. L'intervallo di tempo è liberamente modificabile; ad esempio, se si vuol lanciare il job ogni 10 min: | Questo job verrà lanciato ogni 30 minuti. L'intervallo di tempo è liberamente modificabile; ad esempio, se si vuol lanciare il job ogni 10 min: |
contributi