Видео ролики бесплатно онлайн

Смотреть домашнее видео

Официальный сайт morning-news 24/7/365

Смотреть видео бесплатно

30.09.09 02:12

h0rr0rr_drag0nРезервное копирование конфигурационных файлов.

Не так давно, в результате нелепой ошибки, я чуть было не потерял свой .vimrc, который я пишу чуть ли не с 11 класса. Высрав огромное количество кирпичей Переволновавшись, я решил наконец-то запихать все свои конфиги в какую-нибудь систему контроля версий, чтобы обезопасить себя от дальнейших возможных ошибок.

Я использую систему контроля версий, а не обхожусь банальным копированием всех конфигов, потому что возможна ситуация, когда я сделаю неправильное изменение в конфиге, а потом и вовсе потеряю этот конфиг. Тогда восстановленный конфигурационный файл будет содержать ранее внесенную в него ошибку. Система контроля версий позволяет не попасться в эту ловушку, предоставляя возможность восстановить файл, каким он был до внесения ошибочного изменения.

На канале [email protected] мне посоветовали использовать mercurial – она выгодно отличается своим быстродействием от остальных систем контроля версий.

Сохранять конфиги я решил на своем шелл-аккаунте – ненадежно хранить все это локально – диск может сдохнуть, его могут украсть и т.п. Вероятность возникновения подобного события у хостера – минимальна.

Для начала создадим общий для всех репозиториев каталог, а затем создадим в соответствующем подкаталоге нужный нам репозиторий. Выполним на удаленном хосте:

cd
mkdir hg
mkdir hg/configs
chmod -R 700 hg


На локальной машине, с которой будем сохранять конфиги:

hg init ssh://[email protected]/hg/configs


Теперь для проверки работоспособности синхронизируем репозиторий с локальной машиной (репозиторий будет создан в новом каталоге – hg наотрез отказывается создавать репозиторий в ~):

cd
hg clone ssh://[email protected]/hg/configs
mv configs/.hg .
rm -rf configs


Теперь добавим в репозиторий какой нибудь файл.

~$ hg add .vimrc
~$ hg commit -m 'Initial vimrc commit'
No username found, using 'drag0n@drag0n-laptop' instead
~$ hg push
[email protected]'s password:
pushing to ssh://[email protected]/hg/configs
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files


Все. Добавим таким образом все необходимые конфиги в наш репозиторий.

Если мы обновили какой-нибудь файл, то его нужно вначале закоммитить, а потом отослать изменения на сервер:

hg commit -m 'message' filename
hg push


Для получения свежей версии файлов из репозитория, выполним в каталоге, который мы ранее синхронизировали с репозиторием:

hg pull


Просмотреть список измененных файлов можно при помощи следующей команды:

hg status -A | grep '^[^?]' | less


Она выведет список файлов и однобуквенный статус каждого файла в репозитории:
  • M – файл был изменен
  • A - файл был добавлен
  • R – файл был удален
  • ! – файл был удален, но продолжает числиться в системе контроля версий
  • C – изменения в файле отсутствуют
  • I - файл игнорируется системой контроля версий


Под все это хозяйство я добавил себе парочку алиасов:

1
2
3
4
5
6
7
8
9

#my mercurial repo with configs
alias hgcheck='hg status -A | grep ''^[^?]'' | less'
alias hgpull='hg pull'
function hgpush {
        hg commit -m "$1"
        hg push
}
 


По материалам блога Дракон-линуксоид


Теги:

xcellnt 30.09.09 03:33 # +0
Если задачи попроще можно попробовать http://backintime.le-web.org/ .
shidoh 30.09.09 07:11 # +2
Ты прямо мои мысли читаешь)...как раз думал о бекапе конфигов, и как раз есть аккаунт на shell.tor.hu
cppmm 30.09.09 08:16 # +0
А я обычный svn использую. Нормально работает. Хранится всё на домашнем рутере и дополнительно на втором компе.
xT 30.09.09 10:07 # +2
она выгодно отличается своим быстродействием от остальных систем контроля версий
я жутко сомневаюсь, что ты ощутишь это быстродействие с килобайтными файлами-конфигами =)
lockie 30.09.09 20:18 # +0
Хм, конфиги в репе - это труъ. Надо будет на выходных попробовать =)
xT, Ваш сарказм меня пугает. Неужели всё так плохо с mercurial?
derfenix 30.09.09 22:03 # +1
Имелось в виду, что такие размеры и через диалап по фтп можно синхронизировать, не особо замечая медлительности :)
xT 30.09.09 22:30 # +0
незнаю насколько плохо с mercurial =) не пользовался им ни разу
derfenix меня правильно понял =)
derfenix 30.09.09 10:51 # +1
Исправь: mdkir hg на mkdir hg %)
lwilis 30.09.09 22:19 # +1
mercurial сохраняет права на файлы? Скажем, если права 600, 440
digiwhite 30.09.09 23:45 # +1
Я конечно не сильно уверен, но ИМХО за права(атрибуты файла) отвечает не система контроля версий, а ФС. По крайней мере за те, что вы имеете в виду.

Лучшие блоги (все 55)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 1187 из 89 городов)
Топ пользователей Топ блогов

Новенькие: foxxmulder, zarkone, Zimy4, alkioto, XoCy
welinux.ru

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн