Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Сервис без сервиса для asp.net приложения

Чулан
Иногда бывает нужно, чтобы рядом с asp.net приложением работал сервис, который бы расслылал почту или просто делал какие-то операции через определенные промежутки времени. Это можно сделать с помощью windows service, но не все хостинги позволяют их устанавливать и их не очень удобно отлаживать (на мой вкус). Я нашел в сети интересный способ обойтись без сервиса и хочу им поделиться. Возможно, это всем известная штука, но в поиске я про это ничего не нашел.

поехали
Всего голосов 5: ↑3 и ↓2 +1
Просмотры242
Комментарии 14

Автоматическое выполнение задач с Gnome Schedule

Настройка Linux
Перевод
imageХотели ли бы вы, чтобы регулярно выполняемые задачи на компьютере запускались автоматически? В линуксе для расписания и выполнения задач проще всего использовать crontab. Это приложение, запускающееся из командной строки, позволяет выполнять команды и скрипты, в автоматическом режиме, в заданное время/дату.

А для тех, кто не любит интерфейс командной строки, существует Gnome Schedule — графический эквивалент crontab. Он использует мощь vixie-cron, dcron и at, для управления файлом crontab’а, и предоставляет легкий способ организации расписания выполнения задач на компьютере. Будь то планирование постоянных задач или задачи выполняемой один раз, Gnome Schedule обработает их без проблем.
Читать дальше →
Всего голосов 32: ↑26 и ↓6 +20
Просмотры9.6K
Комментарии 32

Объединяем twitter.com и vkontakte.ru

Python
Пользуетесь ли вы twitter’ом? Если ответом является «Да», то милости просим под кат, где будет рассказано про способ автоматического репостинга сообщений из twitter’а в статус сообщения на сайте vkontakte.ru используя python.
Мне интересно
Всего голосов 99: ↑68 и ↓31 +37
Просмотры6.5K
Комментарии 90

Не можешь найти то, что нужно? Сделай сам

Настройка Linux
Так получилось, что мне было необходимо настроить резервное копирование баз данных MySQL и PostgreSQL. Хотелось вполне определенного, а именно:
  • Простота решения
  • Каждая БД в отдельном файле
  • Имя в формате «bdname.YYYY-MM-DD-HH:mm:ss.sql.gz»
  • Для каждой БД хранится определенное число архивов
  • Набор архивов БД находится в ротации
  • Решение определенных проблем с указанием пароля для pg_dump
  • и т.п.
Готовых скриптов я в сети не нашел, но подобрал и объединил несколько решений, получив искомое.
Читать дальше →
Всего голосов 42: ↑30 и ↓12 +18
Просмотры4.9K
Комментарии 14

Организация уникальных процессов — ScriptAlone спешит на помощь

PHP

Самым популярным паттерном проектирования классов безусловно был и остаётся Singleton — паттерн, который гарантирует уникальность объекта класса в рамках одного процесса.

Но что если возникает необходимость унифицировать сам процесс? В этой статье пойдёт речь о том, в каких задачах это может понадобиться и как этого добиться.
Читать дальше →
Всего голосов 22: ↑13 и ↓9 +4
Просмотры884
Комментарии 63

Парсим RSS LostFilm'a с помощью grep и передаем на закачку через wget

Децентрализованные сети
Tutorial
RSS
Однажды мне надоело вручную просматривать LostFilm на наличие новых вышедших серий и я решил автоматизировать этот процесс. Дело в том, что многие BitTorrent клиенты имеют в своих настройках так называемые папки слежения (wach directory). Как только в этой папке появляется новый torrent файл BitTorrent клиент сразу же начинает его загрузку. Обычной практикой, к примеру, является создание такой папки и открытие к ней доступа на запись по FTP. Теперь, все что нам требуется, это автоматизировать скачивание torrent файла по выходу нового эпизода в указанную папку для их дальнейшей автоматической загрузки. Как сделать именно это я сейчас и покажу.
Читать дальше →
Всего голосов 61: ↑53 и ↓8 +45
Просмотры18.9K
Комментарии 75

Продолжаем парсить RSS теперь уже kinozal'a используя grep, wget/curl

Децентрализованные сети
Tutorial
RSS
В моем предыдущем посте про автоматизацию загрузок новых эпизодов с RSS ленты LostFilm'а хабраюзер AmoN поднял правильный вопрос о невозможности описанным мною способом загрузки раздач, прямых ссылок на torrent файл которых в RSS ленте не содержится. В качестве примера был приведен трекер кинозал.тв. Именно решению этого вопроса посвящен сей пост ;)
Читать дальше →
Всего голосов 37: ↑31 и ↓6 +25
Просмотры10.9K
Комментарии 24

Простая защита от двойного запуска заданий cron

Настройка Linux
Хочу рассказать о простом скрипте, позволяющем защититься от двойного запуска заданий cron.

Допустим, раз в минуту вы обновляете некий кеш, чтобы стремительно отдать его миллионам посетителей сайта. Все идет прекрасно, но ровно до тех пор, пока глубокой ночью не запустится еженедельный бэкап и ваш кеш сформируется не за 10 секунд, а за 70, и на 60-й секунде его настигнет еще один процесс формирования кеша.

Что будет в таком сценарии дальше — вопрос весьма интересный. Велика вероятность, что два процесса будут активно мешать друг другу (они ведь работают с одними и теми же объектами), и их общее время выполнения будет отнюдь не в два раза больше, чем обычно, а если и третий настигнет…
Читать дальше →
Всего голосов 61: ↑50 и ↓11 +39
Просмотры22.7K
Комментарии 71

Вышли Java/Python SDKs 1.4.3

Google App Engine
Files API: Теперь можно программно читать и писать в Blobstore. Доступно как в Python, так и в Java.
— Обновления в работе Task Queue и Cron: Для задач можно указывать версию приложения, с которой очередь будет работать, для крона аналогично + возможность указывать диапазон времени, например, «every 5 minutes from 11:00 to 17:00».

Для PythonSDK
Prospective Search API: Экспериментальное АПИ, позволяющее по критерию в момент вставки сущности в хранилище делать что-либо. Типа обратной связи по какому-либо критерию.
— Testbed Unit Test Framework: Тестирование для AppEngine, тут все должно быть и так понятно.

Для JavaSDK
Concurrent Requests: Теперь возможно использовать каждый инстанс может обстуживать мультипользовательские запросы в одно и тоже время, фича включается путем установки threadsafe в true в appengine-web.xml
— Remote API и Deferred API: Все по аналогии с PythonSDK.

Полные списки изменений:
Release Notes: Python
Release Notes: Java
Revision History
Product Roadmap
Всего голосов 29: ↑26 и ↓3 +23
Просмотры667
Комментарии 7

Процесcы в операционной системе Linux (основные понятия)

Настройка Linux
Из песочницы
Основными активными сущностями в системе Linux являются процессы. Каждый процесс выполняет одну программу и изначально получает один поток управления. Иначе говоря, у процесса есть один счетчик команд, который отслеживает следующую исполняемую команду. Linux позволяет процессу создавать дополнительные потоки (после того, как он начинает выполнение).

Linux представляет собой многозадачную систему, так что несколько независимых процессов могут работать одновременно. Более того, у каждого пользователя может быть одновременно несколько активных процессов, так что в большой системе могут одновременно работать cотни и даже тысячи процессов. Фактически на большинстве однопользовательских рабочих станций (даже когда пользователь куда-либо отлучился) работают десятки фоновых процессов, называемых демонами (daemons). Они запускаются при загрузке системы из сценария оболочки.

Читать дальше →
Всего голосов 106: ↑68 и ↓38 +30
Просмотры19.8K
Комментарии 37

Автоматизированные бэкапы для DB2 на *nix

*nix
Из песочницы
Не так давно на работе понадобилось настроить автоматизированные оффлайн бэкапы для DB2 на AIX. Tак как стандартным методом это сделать не получилось я решил попробавать настроить всё при помощи скриптов которые бы запускались с помощью крона. Простым методом тыка я выяснил что полные оффлайн бэкапы базы занимающие около нескольких гигабайт можно весьма успешно архивировать с помощью 7z. Конечные результаты занимают около 20-50 мб для баз размером в 2-3 гигабайта. Таким образом можно хранить полные бэкапы расфасованные по датам. Осталось всё это дело автоматизировать. Для этого я решил написать несколько скриптов которые бы автоматически убивали соединение к базе, делали бэкап схемы и самой базы.

Для примера расмотрим DB2 9.7.4 Express Edition установленную на Centos 5.5. Для того чтобы вся эта система работала у вас должен быть установлён perl и 7za. База по умолчанию установлена в директорию /home/db2inst1. Cоздадим две директории, одну для скриптов а вторую для бэкапов.
mkdir bin
mkdir backups

Первый скрипт который нам понадобится это скрипт для убийства соединений к базе forcedb
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры2K
Комментарии 6

Ограничение полосы пропускания по времени суток с помощью ipfw

Системное администрирование
Из песочницы
В этой статье описывается, как изменить скорость пользователям под NAT, по времени суток с использованием демона планировщика.

Используется система FreeBSD 8.1, но этот вариант изменения скорости доступен и на всех остальных версиях, где есть ipfw и cron, а это значит — практически на всех ветках и релизах FreeBSD.
Читать дальше →
Всего голосов 28: ↑21 и ↓7 +14
Просмотры3.1K
Комментарии 26

Активная защита FreeBSD на основе логов, sh и cron

*nix
Из песочницы
Приветствую всех администраторов FreeBSD!

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

Задача возникла сама собой, при просмотре логов:
/var/log/exim/rejectlog
/var/log/auth.log
/var/log/apache22/httpd-error.log


в них постоянно попадала информация о неудачных попытках подобрать пароль к exim, к серверу и к веб-почте соответственно. Рано или поздно злоумышленники могут пароль подобрать, поэтому их нужно как-то остановить, например, добавив их IP-адрес в правила ipfw. А на веб-сервере еще и пытались найти несуществующие каталоги и файлы, относящиеся к администрированию, типа phpmyadmin, очевидно, чтобы проверить их на существующие уязвимости.
Читать дальше →
Всего голосов 55: ↑42 и ↓13 +29
Просмотры9.4K
Комментарии 54

Своеобразие cron при не-переводе времени на зимнее

*nix
Сегодня мы бы перевели время. И мы бы сделали это, если бы не указ Президента «Об отмене перехода на сезонное время»… Все, видимо, обновили ПО на серверах (и мы не исключение) и не ждали подвоха, но…

Тестовый скрипт, проверяющий живучесть одной из систем, радостно отрапортовал мне сегодня в час дня вместо запланированных полудня. Я полез на сервер. Время стояло правильное (не переведенное), таймзона тоже верная. Проверил как Ruby возвращает время. Тоже правильно. Посмотрел логи. Время нигде не перевелось! (как и должно было быть).

Закралось одно подозрение, и я вписал в кронтаб тестовый запуск cron'а — ага! — так и срабатывает с задержкой на час! Перезапустил крон. Еще один тест. Да, теперь работает как надо. Нашли! Правда, последовавший за этим ручной перезапуск кронов на остальных (порядка 20) серверах — занятие было еще то.

Мораль: дефолтный cron на FreeBSD (разных версий, вплоть до 8.2) нуждается в перезапуске, после даты «непереведения» времени, иначе где-то в своих недрах все-таки его переводит! Интересно, что будет весной (может быть, к весне обновится?). Или может уже стоило обновить, но теперь удостовериться можно будет только весной?..

«Хозяйке на заметку», как говорится: «если ломатете голову, что сегодня пошло не так, перезапустите крон».

PS. Linux-овые машины (конкретно: Debian и Gentoo с vixie-cron) не оказались подвержены данной оказии. Ну, это не мудрено — там сам крон другой. Но тем не менее, на сабжевой ОС мы все же столкнулись с данным, скажем так, своеобразием поведения отдельно взятого системного приложения.
Всего голосов 53: ↑47 и ↓6 +41
Просмотры3.7K
Комментарии 42

Ежедневный backup Atlassian JIRA и Confluence для Windows

Atlassian


Задача:
  • Ежедневный backup mysql базы данных для JIRA и Confluence;
  • Ежедневный backup директорий с attachments;
  • Архивирование всех сделанных backup'ов;
  • Удаление старых backup'ов.


Оговорюсь, что мне это нужно было сделать для Windows и я понимаю, что для Linux все делается проще и быстрее. Также если вы являетесь администратором, то данный топик вряд ли будет вам интересен и ничего нового вы не узнаете. Но можете использовать написанное, как готовое и проверенное решение.

Решение при помощи bat-файлов и Windows Task Scheduler
Всего голосов 7: ↑6 и ↓1 +5
Просмотры6.9K
Комментарии 3

Использование результата jQuery.ajax вне функции вызова или можно обойтись и без cron

Разработка веб-сайтов
Из песочницы
Не так давно начал использовать jQuery.ajax. В процессе написания одного скрипта обнаружил, что нельзя немедленно использовать ответ ajax запроса. В моём случае запрос передается серверному скрипту, который в свою очередь со стороннего домена наполняет json файл. Наполнение firebug-ом отслеживается от 12 до 20 секунд, что достаточно долго по моим меркам (нельзя заставлять людей столько ждать). Придумал следующий выход из ситуации:

Вводим глобальную переменную (дата, курс валют к рублю):
Читать дальше →
Всего голосов 22: ↑7 и ↓15 -8
Просмотры7.2K
Комментарии 41

Запланированная отправка постов (php, mongo, cron, regexp)

Разработка веб-сайтов
Из песочницы
Добрый день.

Недавно мне пришлось писать страницу отправки постов на стены социальных сетей. Была поставлена задача постить на стену в определенное время а не сразу.

Я написал страницу с полями для выбора соц сетей, текстом сообщения и самим полем для ввода времени отправки. Кроме обычного календаря с выбором даты и времени отправки, я добавил еще одно поле с вводом критерия отправки по правилу cron.

Шаблон * * * * *

После этого встал вопрос — как получить только нужные поля для отправки?
Читать дальше →
Всего голосов 15: ↑5 и ↓10 -5
Просмотры1.7K
Комментарии 13

Разворачиваем cron в Windows

Системное администрирование
Стандартный планировщик Windows штука мощная, но столкнулся с проблемой, которая не позволила мне легко им пользоваться в «домашнем» выпуске Windows. Пришлось установить в систему настоящий cron. Ни капли не пожалел!
Как к этому пришёл, и что из этого поучилось под катом.
Читать дальше →
Всего голосов 25: ↑14 и ↓11 +3
Просмотры61.9K
Комментарии 23

Система мониторинга на BASH

Ненормальное программирование
Из песочницы
Tutorial

Система мониторинга: зачем?


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

Лично я разрабатывал эту систему для решения проблемы скрытого удаленного наблюдения за вверенными мне компами. На этапе реализации мне предложили получить некоторый профит с этого проекта и сделать все на BASH как проект для некоторой конференции.

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

Описание платформы, зависимости


Не так давно я обновился до 12.10й версии всеми любимой Kubuntu (Ubuntu с KDE в качестве WM, GNOME не переношу). Система девственно чиста, никаких манипуляций с ней не производилось, так что в ней не будет пакетов, которых нет у Вас.
Ядро 3.5.0-21, KDE. Для работы самой системы нам понадобятся дополнительные пакеты, которые можно найти в стандартном репозитории. Набираем следующее:
Читать дальше →
Всего голосов 49: ↑30 и ↓19 +11
Просмотры25K
Комментарии 47

Автоматизация перезагрузки роутера CISCO RVS4000

Node.JS
Из песочницы
Так уж случилось, что домашний роутер после двух лет безглючной работы начал время от времени подвисать. Проявлялось это в подвисании WAN порта и отсутствии интернета у всей подсети, LAN работает нормально. Решение оказалось не таким простым, как может показаться сначала.
Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Просмотры5.9K
Комментарии 4