Kezdjük azzal, hogy telepítjük a csomagot:
sudo apt-get install unattended-upgradesÉs lesz még némi beállítanivalónk.
Az első, hogy kapjunk levelet arról, ha valami történik. Elsőként kivesszük a kommentet az /etc/apt/apt.conf.d/50unattended-upgrades fájl Unattended-Upgrade::Mail sora elől. Scriptből így intézhető el:
sudo sed -i /\\/\\/Unattended-Upgrade::Mail\ /s/^..// /etc/apt/apt.conf.d/50unattended-upgradesAztán megadjuk a saját címünket a root@localhost helyett:
sudo sed -i s/root@localhost/sajatmagam@itt.hu/ /etc/apt/apt.conf.d/50unattended-upgradesUgyanebben a fájlban igyekszünk tenni azért, hogy ne legyen baj, ha pont egy frissítés közepén van leállás - kivesszük a kommentezést az Unattended-Upgrade::MinimalSteps kezdetű sor elől:
sudo sed -i /\\/\\/Unattended-Upgrade::MinimalSteps/s/^..// /etc/apt/apt.conf.d/50unattended-upgradesHa nem csak a biztonsági frissítéseket kérjük, akkor ismét kiveszünk egy sort a kommentezésből. Szóljunk emígyen:
sudo sed -i /\"\${distro_id}:\${distro_codename}-updates\"\;/s/^..// /etc/apt/apt.conf.d/50unattended-upgradesÉs ha ezen felül a release "alap" (nem -updates és nem -security) részében lévő frissítéseket is kérjük, akkor szúrjunk be egy sort a harmadikként:
sudo sed -i '3 i\\t"${distro_id}:${distro_codename}";' /etc/apt/apt.conf.d/50unattended-upgradesEz különösen egy béta rendszer esetén hasznos:)
Beállítjuk, hogy a letöltött csomagok ne rohadjanak az örökkévalóságig a /var/cache/apt/archives mappában, hanem 3 nap után szűnjenek meg létezni - a nullát háromra cseréljük:
sudo sed -i /APT::Periodic::AutocleanInterval/s/0/3/ /etc/apt/apt.conf.d/10periodic
Akkor eddig megvagyunk. Az egész hóbelevanc kezeléséért az /etc/cron.daily/apt script felel, aminek az elején találunk még pár instrukciót. Már van egy 10periodic fájl, de az előbb említett scriptben lévő információk szerint az alábbiak a 02periodic fájlba valók. Ennek fényében
sudo sh -c "echo 'APT::Periodic::Enable "1";' >/etc/apt/apt.conf.d/02periodic" sudo sh -c "echo 'APT::Periodic::MaxAge "3";' >>/etc/apt/apt.conf.d/02periodic" sudo sh -c "echo 'APT::Periodic::Unattended-Upgrade "1";' >>/etc/apt/apt.conf.d/02periodic"Nem igazán értem, hogy az előző három sor közül a MaxAge-es miként viszonyul az előzőekben megadott AutocleanInterval-hoz, de sebaj. Eccer majd leülök és rájövök.
Ekkor elvileg minden megy, de nagyon nehéz tesztelni, ugyanis a script azzal kezdi a dolgát, hogy az egyenletes terhelés mián alszik, mégpedig random másodpercnyit, ami akár 1800 is lehet.
Szóval a teszt idejére:
sudo sh -c "echo 'APT::Periodic::RandomSleep "1";' >>/etc/apt/apt.conf.d/02periodic"Persze ezt majd átalakítjuk, ha látjuk, hogy minden rendben. Illetve a munkaállomásokon is alakítani kell majd.
No, akkor teszt (azért ilyen bonyolultan, mert ezzel szimuláljuk leginkább azt, ahogy a scriptet majd a cron futtatja):
sudo sh -c "cd / && run-parts --report /etc/cron.daily/"Ilyenkor ugye esetleg mást is csinál a kis cuki, úgyhogy esetleg hosszabb idő lesz, amíg lefut. Ha visszakaptuk a promptot, akkor adjuk ki, hogy:
tail /var/log/unattended-upgrades/unattended-upgrades.log
És látjuk, hogy mi történt.Ha nem az, amit akarunk, akkor az újabb tesztfuttatás előtt adjuk ki a
sudo rm /var/lib/apt/periodic/upgrade-stamp
parancsot, mert a kis cseles figyel arra, hogy futott-e mostanában, és ebből a fájlból rájön, hogy igen, és jól nem fog lefutni.Minden kész, Mr. Teufel.
Nincsenek megjegyzések:
Megjegyzés küldése