Amavis: nedoumice oko startup skripte

 U službi za pomoć sistem-inženjerima ponekad znamo dobiti upit "koja je prava incijalizacijska datoteka za Amavis"? Uistinu, situacija može biti šarolika, pogotovo ako usporedimo stanje sa nekim drugim poslužiteljima. Ovdje ćemo pokušati malo objasniti "zavrzlamu".

Ako pogledamo što se nalazi u /etc/init.d direktoriju, a tiče se Amavisa, dobit ćemo ovakvu situaciju:

# ls -l /etc/init.d/amav*
lrwxrwxrwx 1 root root   10 Mar 28 15:05 /etc/init.d/amavis -> amavisd-cn
-rwxr-xr-x 1 root root 3501 Feb 24  2007 /etc/init.d/amavis.amavisd-new
-rwxr-xr-x 1 root root 3240 Apr  1 15:44 /etc/init.d/amavisd-cn

Na drugom poslužitelju situacija može biti ovakva:

# ls -l /etc/init.d/amav*
lrwxrwxrwx 1 root root   10 Apr 21 12:48 amavis -> amavisd-cn
-rwxr-xr-x 1 root root 2342 Dec  1  2004 amavis.amavisd-new
-rwxr-xr-x 1 root root 3501 Feb 24  2007 amavis.amavisd-new.dpkg-new
-rwxr-xr-x 1 root root 3236 Apr 21 12:48 amavisd-cn

Iako sve izgleda manje-više isto, veličine datoteka nisu jednake. Postoji i jedna datoteka više. Objasnit ćemo razlike.

U prvoj slučaju, korisnik je potvrdno odgovorio na pitanje želi li zamijeniti konfiguracijske datoteke s onima iz paketa (ili ih nikad nije ni dirao pa je to učinjeno automatski). U drugom slučaju, korisnik je odgovorio niječno, pa mu je ostala stara inačica datoteke, i pojavila se nova (amavis.amavisd-new.dpkg-new). Uočite da je ona jednaka datoteci amavis.amavisd-new na prvom poslužitelju (3501 bajtova), što potvrđuje činjenicu da su na dva poslužitelja odgovori bili drugačiji (datoteke *.dpkg-new obično zaostanu nakon nekog problema i inače ne bi trebale zaostati na sustavu, ali je nama izvrsno poslužilo za ilustraciju).

Kako startup skripte obično ne traže modifikaciju (osim u posebnim slučajevima), bilo bi poželjno da imate one najnovije, iz paketa. U ovakvoj situaciji može nam pomoći sljedeća naredba:

# apt-get install --reinstall --yes -o DPkg::Options::=--force-confnew amavisd-new

Ovako složena naredba će bez pitanja zamijeniti sve datoteke s onima iz paketa, bez obzira jeste li što mijenjali ili ne. Iako to u ovom slučaju nije problem, ako želite rabiti ovu sintaksu i na drugim paketima, budite upozoreni da će se sve konfiguracijske datoteke zamijeniti novima i tako anulirati vaše izmjene. U ovom slučaju to nije problem, jer imamo amavisd-cn paket, koji će podesiti osnovne postavke, baš kao da ste tek instalirali poslužitelj:

# apt-get install --reinstall --yes amavisd-cn

U ovom slučaju ne treba forsirati zamjenu konfiguracijskih datoteka, jer u tom paketu /etc/init.d/amavis nije Conffile. Dodatno, paket amavisd-cn preusmjerava (pomoću alata dpkg-divert) /etc/init.d/amavis iz paketa amavisd-new na sebe, tako da pokazuje na /etc/init./amavisd-cn. Ova nas činjenica vodi na drugi dio nejasnoća oko inicijalizacije Amavisa.

Naime, nije svejedno pod kojim imenom pozivate startup skriptu (iako je /etc/init.d/amavis samo symlink na /etc/init.d/amavisd-cn).

Iz razloga kompatibilnosti sa starijim inačicama paketa, zadržano je staro ponašanje ako skriptu pokrenete kao "/etc/init.d/amavisd-cn restart". To konkretno znači da će se izvršiti restart svih servisa vezanih uz Amavis: amavisa, postfixa i clamava. Ako skriptu pokrenete kao "/etc/init.d/amavis restart" onda ćete restartati samo amavis, odnosno bit će pozvana originalna inicijalizacijska datoteka /etc/init.d/amavis.amavisd-new.

Izuzetak postoji, a to je da se uvijek forsira start (ne i restart ili stop) svih servisa, bez obzira pod kojim imenom ste skriptu pokrenuli. Drugim (matematičko-programerskim) riječima rečeno:

 

amavisd-cn start == amavis start
amavisd-cn restart != amavis restart
amavisd-cn stop != amavis stop

 

Ako ste u nedoumici, jednostavno rabite oblik:

# /etc/init.d/amavisd-cn start ili restart ili stop

Nadamo se da smo uspjeli malo pojasniti ove različitosti.

 

Kuharice: 
Kategorije: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)