# [TIP] Migliorare l'utilizzo dei mirror Gentoo

## Kernel78

Ciao a tutti, ho deciso di scrivere in un unico post alcuni trucchetti che uso (elaborati quando avevo tempo e riuscivo ancora a dormire) per razionalizzare l'utilizzo delle risorse che ci offrono i mirror Gentoo.

Requisiti:

- connessione internet flat

- pc always on

- vixie-cron (gli altri corn non li conosco quindi non mi sbilancio)

- eix

- mirrorselect

Usare il mirror più veloce

Per vari motivi soggettivi (es. affetto) la maggior parte di noi una volta effettuata la scelta del mirror da utilizzare tende a dimenticarsene e a non cambiarlo più in secula seculorum (come dimostra anche una discussione relativa al periodo dei problemi al mirror dell'uni).

Per poter essere considerevolmente sicuri di usare il mirror migliore per noi in un determinato momento possiamo fare affidamento a mirrorselect (app-portage/mirrorselect) in modo che si occupi di testare la velocità dei mirror e di modificarci il make.conf con il mirror migliore in quel momento.

Ovviamente la nostra pigrizia ci spinge a delegare qualcuno per verificare periodicamente lo stato dei mirror e in questo ci viene in aiuto vixie-cron  (sys-process/vixie-cron).

Il trucco consiste nel mettere un file (io l'ho chiamato mirrorselect) in /etc/cron.weekly

```
#!/bin/sh

command -v mirrorselect > /dev/null && mirrorselect -s 3 -q -D

diff /etc/make.conf /etc/make.conf.backup

```

(so che è migliorabile a livello di controlli ma non ho la testa per mettermi a farlo adesso

/EDIT:grazie a drizztbsd per la miglioria)

In sintesi questo script viene lanciato ogni settimana (lanciarlo più di frequente genererebbe troppo traffico inutile per i mirrror) e seleziona i 3 mirror migliori e li imposta in make.conf (facendo un backup di quello vecchio) e poi viene fatto un diff (in questo modo mi arriva una mail con i mirror precedenti e quelli attuali).

Evitare di collegarsi in massa (aka Partenza Intelligente)

Altra tematica inerente ad un utilizzo più razionale delle risorse è quella delle richieste contemporanee.

Ovviamente la Pigrizia (divinità protettrice dei programmatori) ci spinge a impostare in cron un comando per il sync automatico ma questo comporta un piccolo svantaggio.

La scarsità di entropia utilizzata dal cervello umano nella creazione di numeri casuali.

Statisticamente parlando sono sicuro che la massa utilizza prevalentemente orari interi (es. 10:00, 12:00 o nelle migliori ipotesi sfrutta anche i minuti 12:30), questo influisce anche su chi tenta di generare orari più casuali (es. 21:34) visto che statisticamente parlando si finisce sempre vicino alle richieste della massa.

Come poter sopperire a questo ? semplice sfruttiamo la nostra pigrizia e lasciamo che sia il nostro pc a generare un numero casuale per noi.

```
0  22 * * *     root    sleep $RANDOM;eix-sync;emerge -uDNf world
```

inserito in /etc/crontab fa al caso nostro, in questo modo il sync partirà in un orario tra le 22:00:00 e le 07:06:07 con una distribuzione casuale (o pseudo casuale se vogliamo essere pignoli)

Se volete propormi dei miglioramenti o un lavoro come bracciante non siate timidi  :Laughing: 

----------

## Tigerwalk

Io un giardino incolto l'avrei.......  :Laughing: 

A parte gli scherzi, credo che sia un ottimo TIP

Ciao

----------

## Kernel78

fa piacere che qualcuno posso giudicarlo utile  :Wink: 

----------

## drizztbsd

So di essere un pignolo ma non ce la faccio a vedere script sh fatti coi piedi  :Sad: 

```

#!/bin/sh

command -v mirrorselect > /dev/null && mirrorselect -s 3 -q -D

diff /etc/make.conf /etc/make.conf.backup

```

----------

## Kernel78

 *drizztbsd wrote:*   

> So di essere un pignolo ma non ce la faccio a vedere script sh fatti coi piedi 
> 
> 

 

ma non scherziamo neanche, ben venga ogni critica costruttiva (non conoscevo nemmeno command)

Grazie, modifico lo script nel primo messaggio.

----------

## skypjack

 *Kernel78 wrote:*   

> Se volete propormi dei miglioramenti o un lavoro come bracciante non siate timidi 

 

Sei disponibile per dare una mano in un trasloco? Pagamento posticipato ...  :Laughing: 

Scherzi a parte, ottimo TIP!  :Wink: 

----------

## cloc3

rileggevo questo tip.

non capivo bene quel comando echo.

allora ne farei una scusa per riesumare il topic:

```

s939 ~ # tail -n1 /etc/crontab 

0  22 * * *     root    sleep $((9*3600*${RANDOM}/(2**15)));eix-sync;emerge -uDNf world

```

il 9 controlla il numero di ore dopo le 22.

----------

## Kernel78

 *cloc3 wrote:*   

> rileggevo questo tip.
> 
> non capivo bene quel comando echo.
> 
> allora ne farei una scusa per riesumare il topic:
> ...

 

a questo punto forse è meglio fare direttamente un 

```
sleep $RANDOM
```

anzi, adesso correggo  :Smile: 

----------

## cloc3

 *Kernel78 wrote:*   

> 
> 
> a questo punto forse è meglio fare direttamente un 
> 
> ```
> ...

 

dipende. l'esempio di calcolo aritmetico bash è istruttivo e utile, perché aggiunge un grado di libertà.

ma, oggettivamente, è anche superfluo.

lo stesso command, per la verità, non ha gran ragion d'essere.

----------

## Kernel78

 *cloc3 wrote:*   

>  *Kernel78 wrote:*   
> 
> a questo punto forse è meglio fare direttamente un 
> 
> ```
> ...

 

istruttivo, magari ma utile non direi ...

 *Quote:*   

> 
> 
> ma, oggettivamente, è anche superfluo.
> 
> lo stesso command, per la verità, non ha gran ragion d'essere.

 

non mi ricordo perchè ma quando me lo aveva suggerito drizztbsd aveva senso ...

----------

