Иногда очень важно знать, что изменилось в конкретном файле на критическом важном сервере с последующим восстановлением конфигурационного файла. А так же, кто, когда и что там менял. Для этого есть встроенная утилита Revision Control System (RCS). Пользоваться ей очень легко только нужно привыкнуть к работе с ней.
Создайте в той директории, где находится файл директорию "./RCS" там будут лежать контрольные версии файлов данной директории. Пример:
# mkdir /etc/RCS
Для начала ведения истории необходима команда "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
Для редактирования файла запишите его контрольное значение с помощью команды "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 /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" и тп.
Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer
..всё это конечно, хорошо, но
..всё это конечно, хорошо, но лучше использовать что-то более современное и функциональное -- git, hg, svn. не в base system, но намного удобнее.
RE:..всё это конечно, хорошо, но
Согласен, но я в основном стараюсь использовать встроенные утилиты чтобы не "засорять" систему. И в конечном счете требовалось только контролировать пару десятков конфигов, что для отдельной установки спец ПО уже будет слишком. =)
Если хочешь разобраться... Так иди и разбирайся!
[ igNix.ru | Технология жизни - технологии будущего ] [ Forum.igNix.ru ]
Было бы ещё полезным ещё
Было бы ещё полезным ещё осветить работу с ветвями: ветвление, слияние. Использование идентификаторов опять же - тоже полезное свойство.