пятница, 30 ноября 2012 г.
Вика, м-р Мускул и все-все-все
Сижу тут третий день, сочиняю скрипт для Вики. Вика - это не симпатичная молодая девушка, а наша локальная Wiki, в которую мы же сами статьи и пишем. Ну, как третий день... Начать с того, что логинов-паролей мне никто не оставил, сервер Вики крутится на Open Suse, которую я в глаза до сего дня не видел, база данных в MySQL, про которую я знаю только название, да к тому же всё это хозяйство работает в виртуальной машине. Так что развлекуха ещё та.
Сначала перетаскивал Вику к себе на машину, в свою виртуалку, чтобы "тренироваться на кошках", как завещал товарищ Балбес в фильме "Операция Ы". Из одной виртуалки в другую перетащить довольно просто, с реального железа было бы сложнее.
Ну и далее, пошёл вникать сначала в Сюзи, как там и чего. Методом битья головой о стену поставил Midnight Commander, стал искать, где какие файлы у Вики лежат, что сохранять нужно. Хорошо, что товарищи Гугл и Яндекс такие отзывчивые - у них чего хочешь спроси, они всегда ответят. Иногда, правда, отвечают херню какую-то, но, по крайней мере, не обзываются ламером, как живые люди. Живые люди почему-то сильно возбуждаются на чайниковые вопросы и предпочитают не ответить по существу, а всяко обозвать. Ну промолчи ты, если нечего сказать по сути вопроса! Нет, обязательно нужно написать в ответ что-нибудь вроде: "А на гугле забанили?" А вдруг забанили?
В общем, когда нашёл, как сделать дамп с MySQL базы, начал пробовать сохранить базу, изменить какую-нибудь статью, а потом восстановить её из дампа. Вот тут-то и подкрался песец, откуда не ждали. Просмотрел, что сохраняется дамп командой mysqldump, а восстанавливается другой - mysql! И сидел, как дурак, понять не мог, почему же у меня записи из архива не восстанавливаются. Под конец психанул, дропнул одну таблицу прямо из базы! И снова запустил, как я думал, восстановление из дампа. Ну, Вика мне и сказала, что таблицы нет, отвали от меня, извращенец.
Знаете, конечно, плохо быть по пояс деревянным. Зато пока ковырялся во внутренностях сервера, Мускуля и Вики - кое-чему научился. Ну хотя бы и таблицы из базы удалять SQL-запросами. Мало ли, вдруг диверсию надо будет устроить? А тут написал: mqsql drop table %tablename% from %dbname% - оно и дропнулось. Была таблица - нет таблицы.
Потом ещё много всякого весёлого было. И в именах файлов/каталогов путался. Не, ну это ж надо было придумать: база называется mwiki_mwikiadmin, лежит в каталоге mwiki! Другая называется mwiki_8, а лежит в каталоге mwiki-8! А я там убиваюсь, волосы из себя рву, понять не могу, почему у меня картинки из каталога mwiki_8 не копируются. А потому что нет такого каталога!
Так что "пишу скрипт" - это не совсем "пишу". Это много чего. В том числе кофе. Я такими темпами подсяду на кофе, как Н., которая, кажется, на кофе работает. Вот авто на бензине, а она на кофе :-)
Рабочий прототип скрипта я уже написал - база копируется, файлы-вложения копируются, всё это помещается в архив с текущей датой. Сейчас надо немножко навести красоту - оптимизировать код. И сделать копирование архива на другую машину по сети. Другой машиной будет мой рабочий компьютер. И красота! Вика будет защищена от повреждения и удаления информации.
пятница, 9 ноября 2012 г.
Бобёр, выдыхай!
Всё же в который раз убеждаюсь, что программист из меня - как из подушки ракета. Да я вообще удивляюсь иной раз, как меня занесло работать в IT. Поэтому я честно сознаюсь, что я в лучшем случае "бессистемный администратор". Ну, правда. Никто не верит почему-то, умным считают, некоторые по старой памяти вовсе "отличником" обзываются.
А я сегодня на работе чёрте сколько времени ковырялся, да ещё и дома вот практически до сей минуты ковырялся с простеньким, в общем-то, скриптом. Но это для кого-то он простенький, даже примитивный. А мне хватило не на один час. Потому что - смотри сначала, про подушку и ракету. Но написал. Идея была в том, что нужно в разные подразделения скопировать немножко разные версии программы, внести немножко разные параметры в hosts, ну и благополучно запустить это дело. Я убился веником! С каждой командой в этом несчастном bat-файле (если честно, cmd, но это не существенно) бился как рыба об лёд. Ну кто знал, например, что COPY копирует только файлы, а каталоги надо копировать командой XCOPY, да ещё с переподвывертом.
Медленный я, короче. Не тормоз, но медленный газ. Меня это дело что-то так заело, так заело - и на работе задержался, ещё и дома не смог угомониться, мозг не мог остановиться. Правда, дома тестировал "на кошках", во временном каталоге на тут же созданных текстовых файлах. Но вроде бы всё, что думалось, делается. Ошибки обрабатываются, файлы копируются какие надо и куда надо. Осталось только притащить эти домашние заготовки на работу и переписать уже под реальные условия.
А потом, как обычно, выяснится, что всё можно было сделать проще...
Ярлыки:
всюду жЫзнь,
компьютер,
работа,
техническое,
windows
четверг, 1 ноября 2012 г.
Сказка про localhost
Давным-давно, в одной далёкой-далёкой галактике жили-были два приятеля - Пинг и Понг. Вот встретились они как-то в Яндекс-баре, пива попить, да за жизнь потрещать. Посидели, пива попили, косточки знакомым перемыли, собрались уже расходиться. И тут Пинг хлопнул себя по лбу, и говорит:
- Слушай, Понг, у меня же для тебя пакет! Хотел его с собой взять, да забыл! Ты сейчас куда?
- Так домой, - отвечает Понг.
- А, ну его тебе из дома отправлю.
На том и порешили.
По дороге домой Пинг ещё, что называется, добавил, поэтому пришёл совсем уже "никакой". Но про обещание своё каким-то чудом не забыл. Достал пакет из ящика стола, сунул в зубы верному псу Трафику и заплетающимся языком пробормотал:
- ...тнеси... Домой... - и упал мимо дивана.
Верный пёс Трафик взял пакет в зубы, дошёл до двери, вернулся обратно к дивану, и положил пакет возле Пинга. И с чувством выполненного долга устроился спать на незанятом никем диване.
Так что зря утром похмельный Пинг ругал верного пса, тот всё сделал правильно. Ему же сказали отнести пакет домой - он домой и отнёс.
Вот и в компьютере всё точно так же. Отправишь пакет "домой", он так дома и останется, никуда не уйдёт. Но вид, что куда-то ходил, сделает. А команда псу Трафику будет такая:
"ping 127.0.0.1" или, что то же самое: "ping localhost"
А чтобы отправить тот пакет по правильному адресу, так тот адрес и надо написать:
ping yandex.ru (ping 213.180.204.11).
Вот и сказочке конец, а кто не спрятался - я не виноват!
Подписаться на:
Комментарии (Atom)