Änderungen an der Systemkonfiguration auf einem Server sind manchmal eine etwas heikle Angelegenheit. Man kommt nicht ohne sie aus, kann aber auch schnell einzelne Dienste oder gar den ganzen Server in einen nicht benutzbaren Zustand bringen. Dann ist es günstig, wenn man die Änderungen nachvollziehen und zurücknehmen kann.
Versuchen wir uns heute an einem einfachen Beispiel. Im Dienst
collectd zur
Systemüberwachung soll das zur Zeit aktive Modul ping
ausgeschaltet werden.
editor /etc/collectd/collectd.conf
Vorher:
LoadPlugin ping
Nachher:
#LoadPlugin ping
Einige Zeit darauf geht eine E-Mail ein:
Changes made to '/etc/collectd/collectd.conf' follow: @@ -80,7 +80,7 @@ #LoadPlugin openvpn #LoadPlugin perl #LoadPlugin pinba -LoadPlugin ping +#LoadPlugin ping #LoadPlugin postgresql #LoadPlugin powerdns LoadPlugin processes
Diese Meldung kommt vom Programm changetrack, welches die Konfigurationsdateien stündlich auf Änderungen überwacht und den Administrator per E-Mail informiert.
Zusätzlich speichert dieses Programm die alten Versionen der Dateien mit RCS in einem Archiv. Werfen wir einen Blick auf die wichtigsten Programme zum Umgang mit solchen Archiven:
root@bluestar:~# apropos rcs
[...] ci (1) - check in RCS revisions co (1) - check out RCS revisions [...] rcsdiff (1) - compare RCS revisions rlog (1) - print log messages and other information about RCS files
Das Changetrack-Archiv befindet sich im Verzeichnis /var/lib/changetrack. Finden wir zunächst heraus, wie viele Versionen der Datei /etc/collectd/collectd.conf bereits gespeichert wurden.
root@bluestar:~# rlog
/var/lib/changetrack/etc\:collectd\:collectd.conf
RCS file: /var/lib/changetrack/RCS/etc:collectd:collectd.conf,v Working file: /var/lib/changetrack/etc:collectd:collectd.conf head: 1.5 total revisions: 5; selected revisions: 5 description: this is "/etc/collectd/collectd.conf" ---------------------------- revision 1.5 locked by: root; date: 2011/06/10 15:17:21; author: root; state: Exp; lines: +1 -1 modification of "/etc/collectd/collectd.conf" on Fri Jun 10 17:17:03 2011 ---------------------------- revision 1.4 date: 2011/05/26 21:17:20; author: root; state: Exp; lines: +1 -1 modification of "/etc/collectd/collectd.conf" on Thu May 26 23:17:02 2011 ---------------------------- revision 1.3 date: 2011/05/26 16:17:06; author: root; state: Exp; lines: +18 -17 modification of "/etc/collectd/collectd.conf" on Thu May 26 18:17:02 2011 ---------------------------- revision 1.2 date: 2011/05/26 15:17:23; author: root; state: Exp; lines: +13 -13 modification of "/etc/collectd/collectd.conf" on Thu May 26 17:17:02 2011 ---------------------------- revision 1.1 date: 2011/05/24 06:17:16; author: root; state: Exp; modification of "/etc/collectd/collectd.conf" on Tue May 24 08:17:02 2011
Die aktuelle Fassung der Konfigurationsdatei /etc/collectd/collectd.conf ist als Version 1.5 gespeichert. Vergleichen wir sie mit der Vorgängerversion.
root@bluestar:~# rcsdiff -u -r1.5 -r1.4
/var/lib/changetrack/etc\:collectd\:collectd.conf
RCS file: /var/lib/changetrack/RCS/etc:collectd:collectd.conf,v retrieving revision 1.5 retrieving revision 1.4 diff -u -r1.5 -r1.4 --- /var/lib/changetrack/etc:collectd:collectd.conf 2011/06/10 15:17:21 1.5 +++ /var/lib/changetrack/etc:collectd:collectd.conf 2011/05/26 21:17:20 1.4 @@ -80,7 +80,7 @@ #LoadPlugin openvpn #LoadPlugin perl #LoadPlugin pinba -#LoadPlugin ping +LoadPlugin ping #LoadPlugin postgresql #LoadPlugin powerdns LoadPlugin processes
Diese Programmausgabe entspricht sinngemäß dem Inhalt der zuvor empfangenen E-Mail. In der aktuellen Fassung 1.5 ist die Zeile mit # auskommentiert worden, in der vorherigen Version 1.4. war sie dies nicht.
Als nächstes holen wir uns die vorherige Version aus dem Archiv zurück:
root@bluestar:~# co -r1.4
/var/lib/changetrack/etc\:collectd\:collectd.conf
/var/lib/changetrack/RCS/etc:collectd:collectd.conf,v --> /var/lib/changetrack/etc:collectd:collectd.conf revision 1.4 done
root@bluestar:~# cp
/var/lib/changetrack/etc\:collectd\:collectd.conf
/etc/collectd/collectd.conf
Damit haben wir die ursprüngliche Einstellung wieder hergestellt. Einige Zeit später im Posteingang E-Mails von changetrack und fcheck auftauchen, die uns über die gerade vorgenommenen Änderungen informieren.