автоматизация

warning: Creating default object from empty value in /usr/local/www/drupal6/modules/taxonomy/taxonomy.pages.inc on line 33.

Придумалась идея файл-бэкап сервера

Давно уже мучает вопрос, как и куда бэкапить свои данные с минимальными издержками и максимальным результатом.

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

Какие вижу плюсы:

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

Минусы - точно есть, но на вскидку не придумал...

Какие??

0
Your rating: Нет

Создание материала в друпале из пхп

В продолжение темы Перенос мероприятий из Контакта на сайт под Drupal решил, что правильнее сразу публиковать материал на сайт, минуя посредника в виде файла CSV и модуля друпала Node import.

Нашлась статья "Импорт сайтов из разных CMS на Drupal". Оказалось, что это это достаточно просто, создаем файлик new_node.php в каталоге сайта друпала:

<?php

require_once 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$node = new stdClass();

$node->title = "Title";
$node->body = 'Основной текст';
$node->teaser = "Текст анонса";
$node->type = "blog";
$date=DateTime::createFromFormat('d/m/Y - H:i', "31/12/2012 - 15:00");
$node->created = strtotime($date->format('Y-m-d H:i'));; // дата создания
$node->changed = $node->created; // дата обновления

$node->promote = 0; // публикация на главной странице
$node->sticky = 0; // Прикрепить вверху на главной странице
$node->status = 1; // нода опубликована
$node->format = 1; // используется фильтр Filtered HTML
$node->comment = 2; // комментарии разрешены
$node->uid = 0; // ноду добавил "Гость", можно поставить uid=1, тогда ноду добавит админ сайта
 

0
Your rating: Нет

DHCP и DNS сервер под виндовс

Потребовалось настроить сеть и раздать интернет в небольшой организации с помощью имеющихся там машинок. Оказались все под Windows XP. Раздать входящий интернет оказалось без проблем. Сложнее было найти, кто бы раздавал адреса внутри сети.

Нашелся совмещенный DHCP и DNS сервер - Dual DHCP DNS Server.

Маленький, очень легкий, ничего лишнего и все просто. Может работать как службой, так и обычным приложением.

0
Your rating: Нет

Перенос мероприятий из Контакта на сайт под Drupal

Возникла задача - переносить мероприятия (они же события) из социальной сети Вконтакт на сайт под друпалом.

После некоторых поисков и размышлений на эту тему, нашлось два модуля под друпал - Node import и Node import via cron.

  • Node import - позволяет импортировать разные данные из CSV, TXT и т.д. в Drupal
  • Node import via cron - позволяет автоматизировать импорт данных по расписанию, т.е. по крону

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

Т.к. PHP не знал, да еще и забыл полностью, а как при этом еще и с сайтами работают, представление имею очень слабое, то на написание скрипта ушло около суток и скрипт получился не очень красивым. Зато вполне четко работающий.

Что скрипт делает:

  • Анализирует список всех мероприятий с заданных страниц социальной сети Вконтакт
  • Получает заголовок, время начала, аватарку и маленькие фотографии мероприятия
  • Немного форматировать текст мероприятия в более красивый вид
  • В начала текста вставляет аватарку мероприятия
  • В конце текста вставляет все фотографии мероприятия

Чего скрипт не умеет делать и с чем бывают проблемы:

0
Your rating: Нет

Оповещение о происходящем на сайте в jabber и вконтакт.

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

Для друпала есть модуль Juick для публикации посетителями понравившейся статьи в свой блог на этом ресурсе. Пришла мысль автоматом публиковать там записи с сайта.

До этого нашел друпаловский модуль Action Jabber, который позволяет оповещать о событиях на сайте в jabber.

После прочтения правил Juick от идеи публикаций на нем отказался.

Категорически запрещается:

  • Размещать или рассылать спам (в том числе, поисковый) или автоматически сгенерированные сообщения.

К тому же, регистрация новых пользователей на нем временно приостановленна.

Но идея оповещения о событиях на сайте через XMPP очень понравилась, т.к. этот протокол позволяет оповещать как непосредственно в жаббер, так и во всякие службы поддерживающие XMPP протокол, например, многими горячо любимый Vkontakt.

0
Your rating: Нет

Создание копии сайта Drupal в живом журнале

Захотелось/потребовалось дублировать информацию с сайта под друпалом в LiveJournal.

Нашел модуль LiveJournal CrossPoster (он же ljxp), который умеет кроспостить материал создаваемый на сайте сразу в жж. Установил, настроил - все заработало. Но у него было два не очень удобных, для меня, момента:

  1. Он требует настройку для каждого пользователя отдельно, что при задаче ведения одного журнала разными пользователями несколько неудобно.
  2. При публикации старого материала живой журнал ругается, что были записи более свежей даты и не дает сохранять материал прошедшим временем (не верит он в создание машин времени). Для установки нужной даты, требуется сначала опубликовать материал текущей датой и временем, а потом уже поправить время публикации на нужное. Что тоже является не очень удобным.

Т.к. с PHP дружу не очень, а на нем написаны этот модуль и сам друпал, и еще хуже представляю как пишутся модули под друпал, пришлось все делать с помощью жесткого лома (на сколько я понял, в сообществе друпалистов, называется это хаком).

Дальше опищу как что делал, в конце прикреплю поправленный мною файл ljxp.module модуля.

Делаем публикацию статей в ЖЖ всех пользователей сайта с настройками определенного пользователя.

Тут возникло два момента:

0
Your rating: Нет

Кроспостинг из друпала во Вконтакт

Нашел модуль для друпала VKontakte CrossPoster, который позволяет размещать на страницах группы или стене пользователя статьи опубликованные на сайте Drupal'а. Решил проверить как он работает. Установка описана более чем доходчиво, все прошло без каких-либо проблем.

Какие моменты проявились:

  • После публикации, спрашивает у пользователя Vkontakt разрешения сделать запись на стене.
  • При использовании модуля LiveJournal crossposter, рекомендуется сначала отключить его, потом настроить VKontakte CrossPoster и только потом включить LiveJournal crossposter обратно. Иначе могут непубликоваться статьи ни в живой журнал, ни во Вконтакт.
  • Иногда статьи не публикуются на вконтакте. Точную закономерность не выяснил. Может быть, из-за открытого окна с контактом.
0
Your rating: Нет

Анализ статистики работы веб-сервера и организация публичного доступа к ней

Никогда особо не поморачивался, как живет апач и насколько он занят работой по обслуживанию моих страничек. Сегодня что-то вдруг стерльнуло - поставил awstat и покрутил его немного.

В начале года этот сервер обслуживал только этот мой сайт/журнал. С октября начал обслуживать еще сайт Кельтского дома.

Общая статистика нагрузки на мой сервер за 2011 год.

Из нее очень хорошо видно, что в период с апреля по октябрь мой сайт переезжал на другой сервер. А потом, когда вернулся, стал обслуживать, примерно в 2-а раза больше запросов и народу, и стал отдавать, почти в 4-е раза больше трафика. Если в январе-феврале отдавалось 1,5 гб трафика, то в ноябре стало 6,5 гб.

Статистика нагрузки за год Apache сервера обслуживающего ged.korshunov.ru и www.celtic-home.ru

0
Your rating: Нет

Автоматизируем создание почтовых ящиков на яндекс почте для доменов

Т.к. на яндексе несколько специфично понятие автоматизации создания новых ящиков при использовании почты для домена, решил дорисовывать немного сам.

У них есть API для некоторых вещей, его и используем для начала.

Сначала получаем токен для работы:

https://pddimp.yandex.ru/get_token.xml?domain_name=...

параметры:

  • domain_name – имя домена
  • возвращает: <ok token="..."/> или <error reason='...'/>

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

0
Your rating: Нет

Скрипт для удаления ненужной почты с почтового сервера

Потребовалось удалить и периодически удалять почту из одного ящика на почтовом сервере поддерживающим протокол POP3. Где-то читал, что если одна операция выполнятеся более 2-х раз, то ее нужно автоматизировать, нифига так не поступаю обычно, но иногда стреляет.

Самый простенький скрипт для удаления ХХХ писем с сервера server.com с аккаунта login с паролем pass.

echo USER $1
echo PASS $2

COUNTER=1
while [  $COUNTER -ne $3 ]; do
        echo DELE ${COUNTER}
        let COUNTER=COUNTER+1 > /dev/null
done
echo QUIT

Запускается он:

rm_mail.sh login pass XXX | /usr/bin/nc server.com 110

Примерно так же можно получить количество писем и объем ими занимаемый.

 rm_mail.sh login pass 1 | /usr/bin/nc server.com 110 | grep messages | awk '{print ($2, $4 $5)}'

P.S. Проверено на FreeBSD 8.0-RELEASE

0
Your rating: Нет
Ленты новостей