Linux szerverek frissítése

A szerverek üzemeltetésének kulcsfontosságú része, hogy a rajta található szoftverek naprakészek legyenek a biztonsági és egyéb frissítéseket illetően. Ugyanakkor meglehetősen unalmasnak tűnhet minden nap bejelentkezni valamennyi, a felügyeletünkre bízott szerverre csak azért, hogy megnézzük, vannak-e elérhető frissítések. Szerencsére a folyamat automatizálható, azaz rávehetjük a szervereket arra, hogy naponta ellenőrizzék le az elérhető szoftverfrissítéseket, és ha vannak ilyenek, küldjenek erről értesítést, például e-mail formájában. A kérdéses feladatot a cron-apt programmal tudjuk elegánsan megoldani:

aptitude install cron-apt

A program működését a /etc/cron-apt/config fájlban tudjuk beállítani. A részletes konfigurációs paraméterekért tanulmányozd át a /usr/share/doc/cron-apt/README.gz fájlt. Ha azonban sietsz, az alábbi minta jó kiindulási alapként szolgálhat:

APTCOMMAND=/usr/bin/apt-get
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
RUNSLEEP=3600
MINTMPDIRSIZE=10
ACTIONDIR="/etc/cron-apt/action.d"
ACTIONCONFDIR="/etc/cron-apt/config.d"
MAILMSGDIR="/etc/cron-apt/mailmsg.d"
SYSLOGMSGDIR="/etc/cron-apt/syslogmsg.d"
ERRORMSGDIR="/etc/cron-apt/errormsg.d"
LOGMSGDIR="/etc/cron-apt/logmsg.d"
MAILONMSGSDIR="/etc/cron-apt/mailonmsgs"
SYSLOGONMSGSDIR="/etc/cron-apt/syslogonmsgs"
ERROR="/var/log/cron-apt/error"
TEMP="/var/log/cron-apt/temp"
LOG="/var/log/cron-apt/log"
MAIL="/var/log/cron-apt/mail"
MAILTO="admin@comega7.local"
MAILON="upgrade"
SYSLOGON="upgrade"
EXITON="error"
DEBUG="output"
HOSTNAME="webserver.comega7.local"

A /etc/cron.d mappa tartalmazza a cron-apt fájlt, amely gondoskodik arról, hogy az elérhető frissítések lekérdezése hajnali négy óra tájban elinduljon. Ha rendelkezésre állnak új frissítések, letölti azokat - de NEM telepíti fel - és a megadott e-mail címre értesítést fog küldeni, valahogyan így:

CRON-APT RUN [/etc/cron-apt/config]: Sun Dec 20 04:00:01 CET 2015
CRON-APT SLEEP: 1668, Sun Dec 20 04:27:49 CET 2015
CRON-APT ACTION: 3-download
CRON-APT LINE: /usr/bin/aptitude -o quiet=1 dist-upgrade -d -y -o APT::Get::Show-Upgraded=true
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Reading task descriptions...
Building tag database...
The following packages will be upgraded:
 libmariadbclient18 libmysqlclient18 mariadb-client-10.0
 mariadb-client-core-10.0 mariadb-common mariadb-server
 mariadb-server-10.0 mariadb-server-core-10.0 mysql-common
9 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 12.6 MB of archives. After unpacking 2177 kB will be used.
Writing extended state information...
Get: 1 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main mysql-common all 10.0.23+maria-1~jessie [8494 B]
Get: 2 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main mariadb-common all 10.0.23+maria-1~jessie [3278 B]
Get: 3 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main mariadb-server all 10.0.23+maria-1~jessie [2972 B]
Get: 4 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main libmariadbclient18 amd64 10.0.23+maria-1~jessie [576 kB]
Get: 5 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main libmysqlclient18 amd64 10.0.23+maria-1~jessie [2934 B]
Get: 6 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main mariadb-client-core-10.0 amd64 10.0.23+maria-1~jessie [675 kB]
Get: 7 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main mariadb-client-10.0 amd64 10.0.23+maria-1~jessie [1101 kB]
Get: 8 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main mariadb-server-core-10.0 amd64 10.0.23+maria-1~jessie [4368 kB]
Get: 9 http://mariadb.kisiek.net//repo/10.0/debian/ jessie/main mariadb-server-10.0 amd64 10.0.23+maria-1~jessie [5909 kB]
Fetched 12.6 MB in 5s (2183 kB/s)

A Te dolgod pedig ezek után az, hogy eldöntöd, mikorra ütemezed be a telepítést, amelyet viszont érdemes mindig saját kezűleg végrehajtani, nem pedig egy másik automatizmusra bízni.