Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6085
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Системы контроля состояний ОС -?
Просмотров: 362
 
Ответов: 7
Знает ли кто-нибудь что-то о них? Существуют ли такие вообще? Примерный функционал: отслеживание изменений в пакетах, конфигурационных файлах; возможность возврата в любое предыдущее состояние.
Где-то я читал статейку, где предлагалось хранить системные настройки в обычной системе контроля версий: инициализировать внутри каталога /etc локальный репозиторий (речь шла о Линуксе) и туда всё загнать. Даже если поправишь что-то криво, можно будет не вспоминать мучительно, что где правил, а просто откатить изменения. То же самое можно сделать и для всей файловой системы, добавив в список игнорирования ненужные каталоги типа /tmp.
Также существуют программы типа Acronis True Image, в которых можно «заморозить» текущее состояние системы а потом либо откатить все изменения, совершённые после этого момента, либо принять их.
А что такое «любое предыдущее состояние»? И для какой операционки?
В линуксе, целостностью файлов, установленных из пакетов, ведают пакетные менеджеры. Например, в gentoo можно проверить целостность пакета k3b так:
vvdm ~ # equery check k3b
* Checking app-cdr/k3b-2.0.1 ...
415 out of 415 files passed
Аналогично можно сделать, например, в дистрибутивах, основанных на rpm: www.rpm.org/max-rpm/ch-rpm-verify.html
В дебианоподобных это: «debsums -ca <package>»
С файлами настроек сложнее. Они предназначены для того что бы их менять. И тут есть только один разумный подход: делать периодические бэкапы. Раз в неделю архивировать /etc/ как правило вполне достаточно.
Теоретически, можно написать демон, который бы следил за состоянием /etc/ и делал записи об изменении тех или иных файлов настроек, но я не слышал о том что бы кто-то использовал такой подход. Просто за ненадобностью.
Иногда встречаются советы использовать какую-нибудь систему контроля версий для /etc/ (и в последние годя это стало сильно проще, с появлением git, mercurial и других DVCS), но в моей практике, такой необходимости никогда не возникало.
P.S. Ну а на винде контролем за целостностью файлов следят антивирусы — это, в сущности, их основная работа.
* Checking app-cdr/k3b-2.0.1 ...
415 out of 415 files passed
К слову о версионировании каталога /etc есть неплохая статья по версионным файловым системам. Можно использовать что-либо из этого.
А по своему опыту насчет Bacula — надежное средство, если уж ставится настолько сложная и объемная задача. По cron или средствами пре- и пост-задач в bacula можно задавать сбор данных о пакетах (тот же get-selections) на момент копирования. Это позволит в любой момент времени вернуть любое сохраненное состояние системы (с относительно высокой вероятностью ее работоспособности).
К слову о виртуализации — отличное решение, позволяющее экономить в конечном счете массу времени. Восстановление сохраненного состояния вирутализированной машины занимает несколько минут. Состояния (в зависимости от глубины хранения версий) можно хранить как на диске, так и на внешнем хранилище (типа лент или сетевых хранилищ). Здесь возврат к любому состоянию 100%. В данном случае рекомендуется создавать отдельный виртуальный диск/раздел для самой системы и один для пользовательских документов. В таком случае можно вернуть систему на любое состояние. сохранив пользовательские данные. В вашем случае все-таки рекомендую обратить внимание именно на виртуализацию с поддержкой snapshot.
Убунточка (ладно debian, писать в крон):
1. Список пакетов:
dpkg --get-selections > куда-нить, чтобы подцепить через svn
Коммит в svn этого файла
diff файла позволит «увидеть» новые пакеты. Ещё этот файл позволит их все поставить
`dpkg --list` выведет ещё и версии, но сложнее восстановить состояние.
2. Тут писали про хранение /etc/ в svn. Тоже можно коммитить по крону, можно руками после внесения изменений.
Из минусов подхода: куча папок .svn в /etc
Из плюсов: в хранилище можно смотреть изменения и diff-ы этих изменений. Эти настройки можно развернуть на другой машине (правда, вряд ли права доступа при этом сохранятся, вроде эта инфа в svn не хранится — тогда, чтобы хранить, нужно в svn запихнуть и данные о правах и владельцах на файлы)
Вообще, многие дистрибутивы linux очень сложно поддаются «откату» назад при мажорных обновлениях, а именно при них в большинстве случаев понадобиться «запомнить» состояние. А в остальных случаях, изменения вносит администратор, который должен помнить, что поменял.
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться