# Usare cron per tenere aggiornato il sistema..

## Gaap

Ciao, premetto che non l'ho mai utilizzato, ma vorrei utilizzare cron per gestire i vari emerge --sync e emerge -uDp world .. avete un link o una guida di riferimento a cui indirizzarmi? grazie ^^

----------

## Kernel78

```
man cron
```

e se non riesci a farlo andare vedremo di aiutarti  :Wink: 

----------

## Gaap

 *Kernel78 wrote:*   

> 
> 
> ```
> man cron
> ```
> ...

 

 :Very Happy:  ok, mi sembra un buon inizio.. vi faccio sapere di eventuali errori..

----------

## funkoolow

personalmente ti consiglio di automatizzare col cron solo il sync, tanto lì hai poco da scegliere. Una volta al giorno e vai una bomba. Però riguardo all'emerge -uD(etc.etc.etc.) world, ti consiglierei di farlo a mano: a mio parere è sempre meglio tenere sott'occhio quello che vai installando/aggiornando prima con un pretend, anche se installi tutto dal ramo stabile.

----------

## Cazzantonio

tanto vale allora fare anche il sync a mano....

----------

## funkoolow

 *Cazzantonio wrote:*   

> tanto vale allora fare anche il sync a mano....

 

beh, il sync non ci mette proprio un secondo, anche se lo fai tutti i giorni. In questo modo invece, col sync già fatto vedi subito i pacchetti che devi aggiornare col pretend, poi decidi se e quale pacchetto aggiornare (e volendo, pure tutti i candidati coll'emerge -uDN world). Certo non si tratta di un lavoro di un ora, ma è una cosa in meno a cui pensare e per la quale aspettare  :Wink: 

----------

## .:deadhead:.

farò un po' l'avvocato del diavolo ma non mi sembra una buona idea, magari il sync si, ma non aggiornare mai in automatico senza far prima un anteprima. Rischi brutte sorprese e ti perdi gli avvisi a fine emerge, a meno che tu non abbia impostato i log via make.conf. Anche tramite log però è una menata risalire a tutti e solo gli annunci.

----------

## Gaap

vero, per l'emerge non ci avevo pensato.. il sync pero' si, sarebbe meglio automatizzarlo.. tanto non mi costa a niente.. anzi, ogni tanto mi dimentico anche di farlo  :Razz:  .. quindi tutto di guadagnato..

comunque: ho letto il man di cron e la documentazione su gentoo ma sinceramente non ci ho capito molto.. ho notato, invece, che slocate è automatizzato dentro cron tramite un file nella directory /etc/cron.d/daily/ .. quindi in sostanza dovrei fare la stessa cosa con sync, ovvero creare un file chiamato sync con dentro il comando.. ma sinceramente non so' come fare.. un aiutino??

----------

## Luca89

Basta che inserisci una cosa del genere in /etc/cron.daily:

```
#!/bin/sh

emerge --sync
```

e poi rendi il file eseguibile.

----------

## Gaap

 *Luca89 wrote:*   

> Basta che inserisci una cosa del genere in /etc/cron.daily:
> 
> ```
> #!/bin/sh
> 
> ...

 

 :Very Happy:  pensavo fosse più complicato..

----------

## Kernel78

Scusate ma non vedo che problema possa esserci ad automatizzare 

```
emerge -uDp world
```

al massimo io userei anche una N tra le opzioni, almeno così ti puoi vedere subito cosa dovrebbe venire aggiornato ...

----------

## Peach

 *Kernel78 wrote:*   

> Scusate ma non vedo che problema possa esserci ad automatizzare 
> 
> ```
> emerge -uDp world
> ```
> ...

 

no no per carità, sei libero di provare.

Non sta credere che cron quando sta per emergere ti dica: "hoi, guarda che sto per aggiornare 150 pacchetti, tra cui pacchettoX che non si sono degnati di testare a sufficienza e ha un bug che ti sputtana tutto il sistema o quello che serve a te"

questo non succede a meno che non sia tu a farlo comportare così.

Io lo trovo un comportamento poco controllabile, e la potenza è nulla senza il controllo  :Exclamation: 

----------

## Kernel78

 *Peach wrote:*   

>  *Kernel78 wrote:*   Scusate ma non vedo che problema possa esserci ad automatizzare 
> 
> ```
> emerge -uDp world
> ```
> ...

 

 :Laughing:  spero tu non ti offenda se ti dico: no no per carita, sei libero di leggere il comando che ho postato.

In particolare vorrei focalizzare l'attenzione sull'opzione p la stessa presente nel comando postato originariamente Gaap  :Wink: 

----------

## Luca89

 *Kernel78 wrote:*   

>   spero tu non ti offenda se ti dico: no no per carita, sei libero di leggere il comando che ho postato.
> 
> In particolare vorrei focalizzare l'attenzione sull'opzione p la stessa presente nel comando postato originariamente Gaap 

 

E' possibile, magari reindirizzando l'output su un file di log altrimenti te lo perdi. PerÃ² non lo vedo di grande utilitÃ , si tratta solo di qualche secondo. Penso che giÃ  basti e avanzi il --sync automatizzato per guadagnare un po' di tempo.

----------

## Kernel78

 *Luca89 wrote:*   

> E' possibile, magari reindirizzando l'output su un file di log altrimenti te lo perdi. PerÃ² non lo vedo di grande utilitÃ , si tratta solo di qualche secondo. Penso che giÃ  basti e avanzi il --sync automatizzato per guadagnare un po' di tempo.

 

Magari sulla tua macchina si tratta di qualche secondo, sul mio vecchio pentium porta via diversi minuti e se posso risparmiarli non mi lamento di sicuro.

----------

## codadilupo

```
harlock@Alkadia ~ $ !cron

crontab -e
```

```
0   3  * * *   sudo /usr/bin/emerge --sync && sudo /user/sbin/eupdatedb && sudo /usr/sbin/fixpackages && /usr/bin/emerge -uDfN world
```

CodaLast edited by codadilupo on Fri Jun 16, 2006 3:28 pm; edited 2 times in total

----------

## MeMyselfAndI

perentorio!

----------

## Scen

 *codadilupo wrote:*   

> 
> 
> ```
> 0   3  * * *   sudo /usr/bin/emerge --sync && /user/sbin/eupdatedb && /usr/sbin/fixpackages && /usr/bin/emerge -uDfN world
> ```
> ...

 

Attenzione che per eseguire il comando

```

/usr/sbin/eupdatedb

```

ci dev'essere installato app-portage/esearch (che non viene installato di default), altrimenti la catena di comandi sopraelencata non viene portata a termine correttamente.

----------

## maruscya

 *.:deadhead:. wrote:*   

> farò un po' l'avvocato del diavolo ma non mi sembra una buona idea, magari il sync si, ma non aggiornare mai in automatico senza far prima un anteprima. Rischi brutte sorprese e ti perdi gli avvisi a fine emerge, a meno che tu non abbia impostato i log via make.conf. Anche tramite log però è una menata risalire a tutti e solo gli annunci.

 

Domanda banale.... come si mette il log nel make.conf. Una delle cose piu' brutte e' che i msg di emerge una volta "passati" sul video non riesco piu' a recuperarli !!

----------

## Gaap

 *Scen wrote:*   

>  *codadilupo wrote:*   
> 
> ```
> 0   3  * * *   sudo /usr/bin/emerge --sync && /user/sbin/eupdatedb && /usr/sbin/fixpackages && /usr/bin/emerge -uDfN world
> ```
> ...

 

e a cosa serve codesto comando??   :Very Happy: 

----------

## Kernel78

 *maruscya wrote:*   

>  *.:deadhead:. wrote:*   farò un po' l'avvocato del diavolo ma non mi sembra una buona idea, magari il sync si, ma non aggiornare mai in automatico senza far prima un anteprima. Rischi brutte sorprese e ti perdi gli avvisi a fine emerge, a meno che tu non abbia impostato i log via make.conf. Anche tramite log però è una menata risalire a tutti e solo gli annunci. 
> 
> Domanda banale.... come si mette il log nel make.conf. Una delle cose piu' brutte e' che i msg di emerge una volta "passati" sul video non riesco piu' a recuperarli !!

 

Cerca ELOG nel /etc/make.conf.example

----------

## CLod

una domanda/curiosità che c'entra e non c'entra con il topic... l'orario di start dei job inseriti nel cron.daily e anche negli altri (settimanali, mensili) come si setta?

----------

## maruscya

 *CLod wrote:*   

> una domanda/curiosità che c'entra e non c'entra con il topic... l'orario di start dei job inseriti nel cron.daily e anche negli altri (settimanali, mensili) come si setta?

 

Se non sbaglio sono definiti in /etc/crontab

----------

## Kernel78

 *CLod wrote:*   

> una domanda/curiosità che c'entra e non c'entra con il topic... l'orario di start dei job inseriti nel cron.daily e anche negli altri (settimanali, mensili) come si setta?

 

esattamente come specificato in 

```
man 5 crontab
```

RTFM  :Rolling Eyes: 

----------

## codadilupo

 *Scen wrote:*   

> Attenzione che per eseguire il comando
> 
> ```
> 
> /usr/sbin/eupdatedb
> ...

 

si', ovviamente è solo un esempio: tra l'altro, nel mio esempio è necessario anche settare app-admin/sudo perché non chieda la password

Coda

----------

## Luca89

 *Kernel78 wrote:*   

> Magari sulla tua macchina si tratta di qualche secondo, sul mio vecchio pentium porta via diversi minuti e se posso risparmiarli non mi lamento di sicuro.

 

Ma dopo aver letto il risultato del pretend devi rilanciare lo stesso il comando e devi fargli ricalcolare le dipendenze, quindi tanto vale dare a mano:

```
emerge -auDvN world
```

e te ne esci.

----------

## Kernel78

 *Luca89 wrote:*   

>  *Kernel78 wrote:*   Magari sulla tua macchina si tratta di qualche secondo, sul mio vecchio pentium porta via diversi minuti e se posso risparmiarli non mi lamento di sicuro. 
> 
> Ma dopo aver letto il risultato del pretend devi rilanciare lo stesso il comando e devi fargli ricalcolare le dipendenze, quindi tanto vale dare a mano:
> 
> ```
> ...

 

Io tendo a evitare comandi interattivi su macchine così lente ...

Dopo essermi spulciato l'output di emerge -uDpnN world controllo se devo modificare qualche USE o se voglio mascherare/smascherare dei pacchetti e successivamente mi limito ad un emerge -uDN world

----------

## Luca89

 *Kernel78 wrote:*   

> Io tendo a evitare comandi interattivi su macchine cosï¿½ lente ...
> 
> Dopo essermi spulciato l'output di emerge -uDpnN world controllo se devo modificare qualche USE o se voglio mascherare/smascherare dei pacchetti e successivamente mi limito ad un emerge -uDN world

 

Dopo che smascheri eventuali pacchetti devi ridare il pretend se non vuoi andare incontro a brutte sorprese, o sbaglio?

----------

## Kernel78

 *Luca89 wrote:*   

> Dopo che smascheri eventuali pacchetti devi ridare il pretend se non vuoi andare incontro a brutte sorprese, o sbaglio?

 

fino ad ora non ho mai ridato il pretend ne usato l'ask (su quella macchina) e non ho mai avuto brutte sorprese...

Per curiosità a quali brutte sorprese pensi possa andare incontro ?

----------

## Luca89

 *Kernel78 wrote:*   

>  *Luca89 wrote:*   Dopo che smascheri eventuali pacchetti devi ridare il pretend se non vuoi andare incontro a brutte sorprese, o sbaglio? 
> 
> fino ad ora non ho mai ridato il pretend ne usato l'ask (su quella macchina) e non ho mai avuto brutte sorprese...
> 
> Per curiositï¿½ a quali brutte sorprese pensi possa andare incontro ?

 

Cambiare una flag use potrebbe richiedere dipendenze in piÃ¹, magari non volute. Smascherare un pacchetto puÃ² provocare blocchi e via dicendo.

----------

## grick

 *Quote:*   

> 
> 
> Attenzione che per eseguire il comando
> 
> ```
> ...

 

Io lascerei perdere esearch ed userei  app-portage/eix (dire che e' istantaneo e' poco). Quindi il comando potrebbe essere qualcosa del tipo:

```

eix-sync; emerge -NuDf world; emerge -NuDpv world &> /root/PacketsToUpdate.log

```

Nota: eix-sync sostituisce emerge --sync, ma senza generare l'output pacchetto per pacchetto a schermo (il log del sync comunque si trova in /var/log/eix-sync.log), 

ed effettua anche l'update del database di eix (anche questa operazione richiede una frazione di quella di esearch).

```
emerge -NuDpv world &>/root/PacketsToUpdate.log
```

serve solo per avere un'idea di cosa si dovra' aggiornare senza rilanciare il comando. 

Direi che piu' di questo se non si lancia l'effettiva compilazione non si puo' fare.  :Smile: 

----------

