Pull to refresh
  • by relevance
  • by date
  • by rating

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

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

поехали
Total votes 5: ↑3 and ↓2 +1
Views 246
Comments 14

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

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

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

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

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

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

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

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

PHP *

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

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

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

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

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

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

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

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

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

Что будет в таком сценарии дальше — вопрос весьма интересный. Велика вероятность, что два процесса будут активно мешать друг другу (они ведь работают с одними и теми же объектами), и их общее время выполнения будет отнюдь не в два раза больше, чем обычно, а если и третий настигнет…
Читать дальше →
Total votes 61: ↑50 and ↓11 +39
Views 23K
Comments 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
Total votes 29: ↑26 and ↓3 +23
Views 671
Comments 7

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

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

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

Читать дальше →
Total votes 106: ↑68 and ↓38 +30
Views 20K
Comments 37

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

*nix *
Sandbox
Не так давно на работе понадобилось настроить автоматизированные оффлайн бэкапы для 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
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views 2K
Comments 6

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

System administration *
Sandbox
В этой статье описывается, как изменить скорость пользователям под NAT, по времени суток с использованием демона планировщика.

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

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

*nix *
Sandbox
Приветствую всех администраторов FreeBSD!

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

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


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

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

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

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

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

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

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

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

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

Atlassian *


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


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

Решение при помощи bat-файлов и Windows Task Scheduler
Total votes 7: ↑6 and ↓1 +5
Views 7.1K
Comments 3

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

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

Вводим глобальную переменную (дата, курс валют к рублю):
Читать дальше →
Total votes 22: ↑7 and ↓15 -8
Views 7.3K
Comments 41

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

Website development *
Sandbox
Добрый день.

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

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

Шаблон * * * * *

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

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

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

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

Abnormal programming *
Sandbox
Tutorial

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


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

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

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

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


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

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

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