RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
Иногда очень важно знать, что изменилось в конкретном файле на критическом важном сервере с последующим восстановлением конфигурационного файла. А так же, кто, когда и что там менял. Для этого есть встроенная утилита Revision Control System (RCS). Пользоваться ей очень легко только нужно привыкнуть к работе с ней.
Директория
Создайте в той директории, где находится файл директорию "./RCS" там будут лежать контрольные версии файлов данной директории. Пример:
# mkdir /etc/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.
То можете подтвердить это изменение командой "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" и тп.