In un precedente articolo abbiamo visto come Abilitare gli aggiornamenti automatici di sicurezza in Debian/Ubuntu , lo uso questa metodo sulla mia VPS Debian e devo dire che grazie a questo ho dimenticato le preoccupazioni per la sicurezza grazie agli aggiornamenti automatici, ma forse voi avete una Red Hat 6 o Centos 6 e volete anche voi dormire tranquilli?
Non c’è nessun problema, oggi vedremo come ottenere lo stesso risultato su una macchina Centos 6.
Installare yum-cron
Il pacchetto che ci permette di fare gli aggiornamenti automatici tramite yum è yum-cron
, per farlo è sufficiente aprire un terminale come utente root ed eseguire il comando:
yum -y install yum-cron |
Per impostazione predefinita, il software è configurato per scaricare tutti gli aggiornamenti ed applicarli immediatamente dopo il download, ma possiamo cambiare questi comportamenti nel suo file di configurazione /etc/sysconfig/yum-cron
i parametri che si possono cambiare per cambiare questo comportamento sono questi 2:
# Don't install, just check (valid: yes|no) CHECK_ONLY=no # Don't install, just check and download (valid: yes|no) # Implies CHECK_ONLY=yes (gotta check first to see what to download) DOWNLOAD_ONLY=no |
A mio parere, il valore predefinito è buono per quello che voglio ottenere, scaricare e installare tutti gli aggiornamenti, se si desidera solo una mail che vi dica quali pacchetti sono disponibili configurate il parametro CHECK_ONLY
a yes, questo NON scaricherà gli aggiornamenti, ma verificherà solo se ci sono aggiornamenti ed invierà una e-mail all’account di root se c’è qualcosa che può essere aggiornato.
È possibile impostare il parametro MAILTO a un indirizzo di posta elettronica valido, per impostazione predefinita questo parametro non è impostato:
# by default MAILTO is unset, so crond mails the output by itself # example: MAILTO=root MAILTO= |
Modificare questa a qualcosa come [email protected]
.
E ora, prima di abilitare gli aggiornamenti automatici bisogna tenere presente 2 cose correlate a Centos/Red Hat:
1) I pacchetti di distribuzione per queste distribuzioni non danno informazioni precise sulla sicurezza, quindi quello che possiamo fare è un aggiornamento automatico di tutto il sistema, non solo dei pacchetti sulal sicurezza sicurezza come in Debian.
2) A causa del punto numero 1, questa procedura aggiorna ogni singolo pacchetto del sistema, quindi è importante che, come prima cosa si impostino correttamente i pacchetti che non dovrebbe essere automaticamente aggiornati.
Bloccare alcuni pacchetti dagli aggiornamenti automati in Centos
Ci sono 2 modi per ottenere questo obiettivo:
– Se si desidera escludere alcuni pacchetti dagli aggiornamenti automatici anche quando si da un yum update
dalla riga di comando è possibile impostare l’opzione exclude
nel file /etc/yum.conf
, quindi si può impostare qualcosa di simile:
exclude=kernel* php* |
– Se si desidera escludere alcuni pacchetti solo dagli aggiornamenti automatici è possibile modificare il file /etc/sysconfig/yum-cron
e impostare l’opzione YUM_PARAMETER con -x nomepacchetto
, è necessario ripetere -x per ogni pacchetto che si desidera escludere, quindi ad esempio:
YUM_PARAMETER="-x kernel* -x php*" |
Si dovrebbe quindi eseguire un ‘yum update’ per assicurarsi che si è aggiornati. Questo sarà anche utile per verificare che non ci sono conflitti. Ricordate, se ci sono conflitti yum non sarà in grado di fare l’aggiornamento. Ciò significa che yum-cron non sarà in grado di aggiornare automaticamente il sistema.
Abilitare gli aggiornamenti automatici
Ora non resta che abilitare gli aggiornamenti automatici con il comando:
[root@host ~]# /etc/init.d/yum-cron start Enabling nightly yum update: [ OK ] |
Ed abilitare questo demone al boot con il comando:
[root@host ~]# chkconfig yum-cron on |
L’aggiornamento del sistema sarà fatto durante i processi programmati in cron.daily del sistema.
Popular Posts:
- None Found
Thank you for the article… very informative. I didn’t know there is ‘yum-cron’ for this. I used to use a simple ‘yum update -y’ in a shell script inside cron.daily which I assume it’s the same thing..
Reinventing the wheel, yum-updatesd can already do that.
yum-updatesd is better suited for desktop, and yum-cron for servers.
yumupdatesd was available in RHEL/CentOS 5.x.
It was replaced in RHEL/CentOS 6.x with yum-cron.
is that any way to run yum-cron only for a specific day say Sunday rather than everyday.
@ dipan mukherjee
in /etc/sysconfig there is a file called yum-cron
To open and edit this file execute the following command:
nano /etc/sysconfig/yum-cron
When the file is open in Nano look for this part:
# you may set DAYS_OF_WEEK to the days of the week you want to run
# default is every day
#DAYS_OF_WEEK="0123456"
Changing the number will set certain days. 0 = Sunday, 1 = Monday, 2 = Tuesday, etc… Set the value to “0” to cron every Sunday.
# you may set DAYS_OF_WEEK to the days of the week you want to run
# default is every day
#DAYS_OF_WEEK="0"
Good luck
Thanks for update.Actually we had needed a specific time in weekend to run and send mail to us for this purpose I have moved the file from /etc/cron.daily/0yum.cron to /etc/cron.d/0yum.cron and made changes as per my requirement. It is working fine. Ok we will check the solution which you provide.
# crontab -l
0 2 * * 6 /etc/cron.d/0yum.cron
Another way of updating everything but leaving certian packages alone is to sue the “versionlock” option with yum.
Download/install it
[root@foo samba]# yum install yum-versionlock
And now version lock samba
[root@foo samba]# yum versionlock samba