Иногда очень важно знать, что изменилось в конкретном файле на критическом важном сервере с последующим восстановлением конфигурационного файла. А так же, кто, когда и что там менял. Для этого есть встроенная утилита Revision Control System (RCS). Пользоваться ей очень легко только нужно привыкнуть к работе с ней.Директория Создайте в той директории, где находится файл директорию "./RCS " там будут лежать контрольные версии файлов данной директории. Пример:
Ну вот и все готово =) теперь воспользуемся ей. Для примера возьмем /etc/rc.conf .
Регистрация файла Для начала ведения истории необходима команда "ci -l ".
ci - сокращение от "check in" регистрация - помещает содержимого файла в архивный файл, хранящий его предыдущие версии (а точнее, изменения между его версиями) называемый также RCS-файлом.
Пример:
# ci -l /etc/rc.conf
/etc/RCS/rc.conf,v <-- /etc/rc.conf
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> .
initial revision: 1.1
done
# ll /etc/RCS/
total 4
-r--r--r-- 1 root wheel 2,1K 25 окт 13:25 rc.conf,v Теперь история изменений файла будет хранится в созданной директории /etc/RCS в одноименном файле с пометкой ",v ".
Редактирование файла Для редактирования файла запишите его контрольное значение с помощью команды "co -l ".
co - сокращение от "check out" представляют собой получение копии некоторой версии из RCS-архива.
Пример:
# co -l /etc/rc.conf
/etc/RCS/rc.conf,v --> /etc/rc.conf
revision 1.1 (locked)
writable /etc/rc.conf exists; remove it? [ny](n): n
co: checkout aborted Затем измените этот файл своим редактором.
Когда изменения будут внесены подтвердите изменения командой "ci -u ": Пример:
# ci -u /etc/rc.conf
/etc/RCS/rc.conf,v <-- /etc/rc.conf
new revision: 1.2; previous revision: 1.1
enter log message, terminated with single '.' or end of file:
>> .
done
Контроль работы с файлом Так же полезно запускать "rcsdiff " перед запуском "co " таким образом вы уведите, кто внес изменение в файл и забыл воспользоваться RCS.
# rcsdiff /etc/rc.conf
===================================================================
RCS file: /etc/RCS/rc.conf,v
retrieving revision 1.2
diff -r1.2 /etc/rc.conf Тут все в порядке.
Ели вы увидели, что, кто то внес изменения в этот файл как в примере ниже:
# rcsdiff /etc/rc.conf
===================================================================
RCS file: /etc/RCS/rc.conf,v
retrieving revision 1.2
diff -r1.2 /etc/rc.conf
83d82
< #TEST То можете подтвердить это изменение командой "rcs -l ", а затем выполнить обычную команду подтверждения изменений "ci -u " :# rcs -l /etc/rc.conf
RCS file: /etc/RCS/rc.conf,v
done
# ci -u /etc/rc.conf
/etc/RCS/rc.conf,v <-- /etc/rc.conf
new revision: 1.3; previous revision: 1.2
enter log message, terminated with single '.' or end of file:
>> .
done
Восстановления файла Восстановление до последней текущий ревизии.
# co rc.conf
RCS/rc.conf,v --> rc.conf
revision 1.2 До конкретной версии файла# co -r1.1 rc.conf
RCS/rc.conf,v --> rc.conf
revision 1.1
done Освоение этих нескольких команд позволит вам сохранить свои нервы и сэкономить время в дальнейшем.
В RCS есть много полезных команд "rlog " для отображении истории изменения файла, а так же как выглядят предыдущие версии "co -p -rX.X " и тп.