2009-03-29

Бэкап настроек в Linux

В линуксе редки случаи "вчера работало, а сегодня нет =(". Будучи настроенной, программа (заслуживающая уважения, конечно) способна работать в режиме "сегодня как вчера, а завтра как сегодня" очень и очень долго. Но что делать если настройки по той или иной причине сбились в непонятном направлении? Разумеется восстановить из бэкапа! Но, если для того чтобы продать что-нибудь ненужное, надо сначала купить что-нибудь ненужное, то для восстановления из бэкапа надо сначала его сделать. Сделать это очень просто.

Все настройки в линуксе делятся на две большие группы - системные и пользовательские. Системные настройки хранятся в директории /etc, являются общесистемными (например определяют список репозиториев с софтом, или список жестких дисков, монтируемых при загрузке, содержат настройки демонов), их редактирование разрешено только суперпользователю. Такие настройки как настройки опен офиса, музыкального проигрывателя и прочих пользовательских программ (в том числе настройки интерфейса) не требуют прав суперпользователя для изменения, и хранятся в домашней директории конкретного пользователя в виде скрытых файлов и поддиректорий ( т.е. с названиями начинающимися с точки. Например .gnome, .mozilla, .bashrc).

Из этого можно сделать вывод — все настройки можно сохранить простым копированием директории /etc/ и тех файлов и папок из домашней директории, которые называются с точки.

Теперь все просто. Создаем в своей домашней директории (/home/yourname/) директорию backup. Сохраняем туда архив, содержащий настройки пользователя:

tar cpvzf ~/backup/`date +%y.%m.%d`_home_settings.tgz ~/.[a-z,A-Z]*

Эта команда создаст сжатый архив с примерно таким названием "09.03.29_home_settings.tgz". В дальнейшем в него можно будет зайти как в обычную папку при помощи Midnight Commander, и извлечь из него нужную папку или файл.

Возможно потребуется исключить из бэкапа некие папки. Например я бэкаплю настройки файрфокса его расширением FEBE, а бэкапы вайна и антивируса мне просто не нужны. Для исключения директорий и файлов слегка видоизменяем скрипт, дописывая исключения. В моем случае:

tar cpvzf ~/backup/`date +%y.%m.%d`_home_settings.tgz --exclude='.wine' --exclude='.mozilla' --exclude='.avast' ~/.[a-z,A-Z]*


Теперь о бэкапе системных настроек. В общем-то все аналогично, но делаем через sudo (и меняем yourname )):

sudo tar cpvzf /home/yourname/backup/`date +%y.%m.%d`_etc_settings.tgz /etc/

Замечу, что архив создастся под правами суперпользователя, поэтому если мы захотим его переместить, переименовать или удалить - система нас пошлет. Поэтому сразу после создания выдадим себе права на него:

sudo chmod 666 /home/yourname/backup/`date +%y.%m.%d`_etc_settings.tgz
(дата будет отличаться ;))

Теперь архив можно переименовывать и в общем обращаться как со своим =). Для восстановления файла из него — запускаем mc с правами рута (sudo mc), заходим внутрь и копируем нужный конфиг обратно в /etc.

PS: полный бэкап всего и всея:

tar -cvpf /backups/fullbackup.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev/pts --exclude=backups .

2009-03-25

Синхронизация контактов Symbian S60 3rd Edition с контактами Google

Сегодня немного не про винду, и даже не про линукс, а совсем даже про симбиан. Пару недель задался целью синхронизировать свой смарт с чем-нибудь. Оказалось, что если вы имеете гуглопочту и смартфон на базе Symbian S60 3rd Edition, то вы можете легко и просто настроить синхронизацию контактов между ними. Оригинальный мануал на английском расположен тут, и хотя он касается Nokia N-Series или E-Series, думаю он подойдет и для других смартов на этой платформе.

Итак, действия следующие (рассматриваю на Nokia E71):
  1. Откройте главное меню вашего смарта, выберите пункт Средства и затем пункт Синх.
  2. Откройте меню Функции и выберите Нов. профиль синхр., откажитесь от предлагаемого копирования профиля
  3. Обзовите как-нибудь создаваемый профиль. Например «Google sync»
  4. Откройте пункт Приложения
  5. Откройте пункт Контакты
    • Выставьте значение «Да» для опции «Включить в синхронизацию»
    • Впишите значение «contacts» (маленькими буквами, без кавычек) для опции «Удаленная БД». Нажмите Ok
    • Нажмите Назад 2 раза, возвращаясь к экрану на котором задавалось имя профиля. Выберите пункт Парам. подключ.
  6. Введите следующие значения:
    • Версия сервера: 1.2
    • Идентификат. сервера: Google (с заглавной G)
    • Канал прдч данныхr: Интернет
    • Точка доступа: С запросом, или непосредственно та через которую работает инет.
    • Адрес сервера: https://m.google.com/syncml (именно https)
    • Порт: 443
    • Имя пользователя: ваш аккаунт на гугле, например qiwichupa@gmail.com
    • Пароль: пароль от аккаунта
    • Остальное оставьте без изменений
  7. Нажмите Назад 2 раза, сохраняя созданный профиль и возвращаясь к списку профилей.
  8. Выделите созданный профиль, откройте меню Функции и выберите Синхронизация. Если интернет доступен, контакты смарта зальются в адресную книгу гугла и наоборот - контакты из адресной книги гугла зальются в смарт.

Лично у меня после этого обнаружился солидный бардак, так как контакты там и там друг другу не соответствовали, частично пересекались, частично отличались по именам. После первой синхронизации я удалил все контакты из смартфона, привел их в порядок на гугле (совместил одинаковые но разноименные записи, выдал русские имена), после чего повторно синхронизировал, залив на смарт приведенные в порядок контакты.

2009-03-22

Упала система. Что делать? (часть 2)

В первой части я описал действия, необходимые для первичной диагностики железа в случае если система упала. Повторю общие принципы:
  1. из компьютера выдирается все железо без которого он может работать или хотя бы подавать сигналы бипером (для последнего случая достаточно материнской платы, процессора и блока питания), после чего оное постепенно вставляется обратно и проверяется на работоспособность
  2. Если компьютер включается, но появляется надпись "NTLDR is missing" — пользуемся консолью восстановления, загрузившись со стандартного установочного диска Windows
  3. Если система грузится но в процессе падает в синий экран смерти (BSoD) — проверяем оперативку и системный жесткий диск программами Memtest 86 и Victoria

Теперь предположим что железо исправное, но система все равно валится в BSoD или просто работает нестабильно. В первом случае стоит попробовать загрузиться в безопасном режиме, для чего перед появлением первого экрана с логотипом XP нужно успеть нажать F8. При успешном нажатии появится меню, в котором безопасный режим будет одним из пунктов. Если система успешно загрузится в безопасном режиме, можно попробовать сделать 3 вещи:
  1. Переустановить сервиспак (SP)
  2. Переустановить Internet Exporer (IE)
  3. Использовать консольную утилиту sfc, сравнивающую файлы системы с исходными файлами из дистрибутива
Первые два пункта предельно ясны: если у вас XP с установленным SP3 и IE7, то берем их инсталляторы и устанавливаем снова. Иногда это помогает поднять систему, иногда не очень. В любом случае попробовать стоит. Третий пункт также не сложен. Нужно открыть консоль (пуск - выполнить - cmd), вставить установочный диск Windows и выполнить команду:
sfc /scannow

Нужно заметить только одно — установочный диск должен содержать версию Windows, включающую в себя тот сервиспак, который у вас установлен. То есть если вы ставили винду с диска Win XP SP2, а потом сами поставили SP3, то ваш инсталляционный диск не прокатит, потребуется найти диск Win XP SP3. Также должен совпадать язык. Если вы ставили английскую винду, после чего накатывали MUI, то sfc потребуется именно английский дистрибутив. Так что прежде чем использовать sfc, убедитесь что имеете на руках необходимый дистрибутив.

Если после переустановки SP и IE, и использования sfc система все еще падает в BSoD (а также в случае если система не загрузилась в безопасном режиме), остается один, последний вариант — попробовать восстановить реестр из резервной копии. Сами резервные копии создаются только в случае если у вас не отключена служба восстановления (сама по себе довольно бестолковая, но исправно сохраняющая реестр, что важно). Так как система не грузится, то потребуется загрузочный диск MiniPE, или аналогичный — способный загрузить с себя рабочую систему. Загрузившись с такого диска мы получаем возможность оперировать файлами на дисках, а также делать еще много чего интересного, но в данном случае нас будут интересовать только файлы. А конкретно — файлы, содержащие в себе системный реестр. Хранятся они в папке %windir%\system32\config и называются:
  1. SYSTEM
  2. SECURITY
  3. SAM
  4. SOFTWARE
  5. DEFAULT
На всякий случай сохраняем эти файлы в надежном месте, после чего приступаем к изучению папки «System Volume Information» внутри системного раздела. Внутри этой папки будут лежать подпапки, соответствующие точкам восстановления. А внутри каждой из них, на определенной глубине, лежать файлы с названиями, содержащими в себе названия оригинальных файлов из %windir%\system32\config.

Ориентируясь по дате их создания, выбираем слепок, созданный когда система прекрасно работала, и переносим эти файлы, переименовывая и заменяя ими файлы в %windir%\system32\config. После этого перезагружаемся и пробуем прогрузить систему.

Часто, после восстановления реестра, если оно конечно было успешно, я также переустанавливаю SP и IE, чисто на всякий случай. В комплексе эти методы процентах в 70ти дают рабочую систему, способную выполнять свои функции по крайней мере какое-то время, требуемое для завершения срочной работы. Иногда нет. В любом случае стоит понимать, что описанные действия не являются панацеей и единственно верным способом вылечить систему или починить компьютер. Описанное - лишь некий в общих чертах описанный путь, которого придерживаюсь я сам. Проверить железо, проверить загрузчик, проверить реестр и системные файлы. Естественно часто этот путь сокращается — например железо явно работает. Или усложняется — нет бэкапа реестра а нужная прога неожиданно заглючила и переустановка ее не помогает. Приходится гуглить, лезть в реестр руками и что-то править. Множество мелких вещей, которые остались за рамками этих двух заметок, приходят банально с опытом, какие-то глюки бывают специфичны для определенного железа или набора железа, это тоже стоит понимать. Однако, надеюсь что эти две заметки помогут в общих чертах понять подход к диагностике железа и восстановлению работоспособности системы, и сэкономить время как на переустановку так и, что важнее, перенастройку свежеустановленной системы.

2009-03-07

Liferea и чтение подзамочных лент livejournal как rss

Не секрет что все ЖЖ ленты — как юзеров, так и сообществ — транслируются новостными RSS-потоками. Эти потоки являются открытыми для всех и ссылки на них выглядят в общем случае как
http://community.livejournal.com/community_name/data/rss — для сообществ
и
http://username.livejournal.com/data/rss — для простых юзеров

Возникает справедливый вопрос — если эти потоки открыты, то как быть с подзамком? Подзамочные записи, разумеется, не транслируются в открытую. Для того чтобы иметь возможность их читать, требуется ридер имеющий опцию http-авторизации. Сам я с недавних пор использую аггрегатор Liferea, который умеет все что нужно, и мне остается ответить на вопрос — как читать подзамки в рсс-ленте? Оказывается — очень просто. Меняем ссылки на ленты, добавляя ?auth=digest, то есть придавая вид:
http://community.livejournal.com/community_name/data/rss?auth=digest — для сообществ
и
http://username.livejournal.com/data/rss?auth=digest — для простых юзеров

После добавления нужной ленты Liferea автоматом рвется ее проверять и запрашивает ваше имя пользователя живого журнала и пароль к нему. Изменить имя и пароль в случае чего можно в свойствах ленты на вкладке "Получить", раздел "Использовать HTTP авторизацию"