Бекап всех баз mysql, shell скрипт

Дележка опытом, Разработка Комментариев нет »

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

#!/bin/bash

find /var/db/backup/ -mtime +15 -exec rm {} \;
mysqldump -u USER -pPASSWORD –all-databases | gzip -9 > /var/db/backup/$(date ‘+%F-%H-%M-%S’).sql.gz

Все бекапы хранятся в /var/db/backup/.
Первым делом скрипт удаляет все бекапы старее 15 дней (+15 в скрипте, можно поменять на своё).
Ну и следующей строкой делает дамп всех баз и сразу архивирует и сохраняет в файл с именем – текущей датой.

Ну и, естественно, нужны права рута для всего этого.

Можно скачать.

Загрузка произвольного количества файлов на сервер

javascript, PHP, Дележка опытом, Разработка Комментарии (19) »

Что я подразумеваю под загрузкой произвольного количества: пользователь выбирает сколько угодно файлов, нажимает кнопку “загрузить” и файлы загружаются на сервер и обрабатываются. Новые поля для выбора файлов создаются динамически.

Шаг 1: Создаём форму

<form method=”POST” id=”upform” name=”upform” enctype=”multipart/form-data”>
<input type=”file” size=”50″ onchange=”addElement()” name=”first”>
</form>

<input type=”button” value=”Загрузить” onclick=”upform.submit()”>

На форме у нас всего один элемент для загрузки файлов под именем first и назначено событие на изменение(выбор) файла – addElement(). Кнопка загрузить стоит отдельно от формы, почему сделано именно так будет объяснено далее.

Шаг 2: Создаем javascript функцию динамического добавления нового поля для файла

<script>
function addElement() {
var uf = document.getElementById(‘upform’);

// Создаём новое поле для выбора файла
var newFile = document.createElement(‘input’);

var fileIdName = ‘myFile’+Math.random(); //Случайное имя

newFile.setAttribute(‘id’,fileIdName);
newFile.setAttribute(‘name’,fileIdName);
newFile.setAttribute(‘type’,'file’);
newFile.setAttribute(‘size’,’50′);

// при выборе файла данное поле тоже должно добавлять еще одно поле
newFile.setAttribute(‘onChange’,'addElement()’);
newFile.onchange = addElement;

uf.appendChild(newFile); // добавляем поле к форме, поле добавится в конец формы, потому мы ранее
// и вынесли кнопку “загрузить” за форму – логичнее она будет смотреться в конце
}
</script>

Шаг 3: Обработка загруженных файлов на сервере

Для обработки файлов на сервере вставляем следующий код:

foreach ($_FILES as $file) {

// здесь стандартная обработка загруженных файлов, примеров в интернете полно
// также здесь можно проверять, например, что это динамически добавлненное поле (у нас оно начинается с “myFile”)

}

Рабочий пример можно посмотреть здесь (в примере опущено enctype=”multipart/form-data”).

Код написан для админки одного из сайтов фирмы Бош, он не идеален (например если два раза выбрать файл в первом поле, то будет два пустых поля), но это не сложно добавить самим ;) Гарантированно работает в Firefox, IE, Opera. Удачного кодинга!

UPDATE: по просьбе выкладываю серверную часть загрузки файлов Читать полностью »

Накрутка счетчика Feedburner: Попытка №2

PHP, SEO, Дележка опытом, Идеи, Разработка Комментарии (13) »

Не так давно я писал про свой эксперимент по накрутке счетчика Feedburner. Первая попытка провалилась с треском. Я почему-то наивно решил что feedburner можно “сделать” в тупую, в лоб. Не тут-то было.

Раскрою секрет первой попытки(фактически это не секрет :) ): я взял список бесплатных анонимных и не анонимных proxy-серверов, и через сокеты, тунелем через прокси тянул rss-фиды. Еще один нюанс был там, но до этого вы можете додуматься и сами ;)

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

В качестве “жертв” эксперимента были взяты блоги-новички, у которых на счетчике 1-5 подписчиков.

Тянуть резину не буду – результат нулевой. Точнее на одном из блогов счетчик прыгнул с 2 до 8-ми, но по моим расчетам он должен был подняться до 30-50.

Получается что я пытался “сделать” фидбернер, а он вывернулся и сам пристроился сзади :)

Есть, конечно, еще идеи (и свои и чужие), но что-то мне подсказывает что через прокси сделать это непросто – гугл тоже не дурак и в любом случае мониторит бесплатные прокси для своего Adsense и скорее всего система там единая уже с Feedburner и Analytics.

Толи еще будет…

Между прочим: Читать полностью »

PDT – Редактор PHP

PHP, Программы, Разработка Комментарии (10) »

Давным давно я пытался настроить Eclipse под свои пхп-шные нужды. Накачал плагинов, начал лепить – с ходу не получилось, а надо было срочно работать. Взял Zend(ZDE) и все время писал в нем.

Ну и основной гемор был в том что редактировать-то мне нравилось в Zend, а поливать и синхронизить под CVS – в Eclipse.

Но вчера я открыл для себя маленькую америку :) С прошлого года комманда Eclipse начала выпускать сборку, уже заточенную под пхп кодеров. Назвали все это дело “PDT” в сборке уже установленые все плагины, которые необходимы для разработки: подсветка синтаксиса, автодополнение (по контрол+пробелу), навороченный редактор SQL, XML и т.д. и т.п.

Я думаю штука достойна внимания, попробую пользовать – там увидим!

http://download.eclipse.org/tools/pdt/downloads/ (120 mb)

Накрутка счетчика Feedburner: Попытка №1

Идеи, Разработка Комментарии (7) »

Вчера под вечер мне пришла идея как можно накрутить счетчик Feedburner.

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

В качестве “жертв” для испытания были выбраны 3 блога: мой Real Russian Life, CKDev и Блог Ромы. Незначительная накрутка, порядка +20, должна была произойти.

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

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

Кто-то конечно же возразит:
Читать полностью »

Греббер с bash.org.ru + плагин для WordPress

PHP, Разработка Комментарии (14) »

От нечего делать и практики ради – решил написать небольшой скрипт который грабит записи с БОРа и пихает их в базу. Скрипт был написан где-то за пол часа и представляет из себя следующую штуку:

  • берется контент с главной страницы
  • выбираются все записи (обычно их там 95 на странице)
  • каждая запись проверяется есть ли она в базе по айди, который указан там на сайте
  • если записи нет, то добавляем её

Данный скрипт нужно вешать на cron с интервалом – 2-3 раза в день, при этом с каждым днем ваша собственная база цитат будет автоматически наращиваться;)

Структура теблицы БД, её нужно создать вручную: Читать полностью »

Сравнение и анализ поисковой выдачи

Разработка Комментарии (4) »

Написал на досуге прототип онлайн тулзы под названием “Сравнение и анализ поисковой выдачи”. Программу хотел написать давно, но решился начать только вчера.

Что представляет из себя программа: человек вводит поисковый запрос и получает результат в удобном виде сразу из 3-х наиболее популярных в ру-нете поисковиков: Yandex, Google и Rambler.

На текущей стадии(версия 0.01) программа не более чем забавная тулзень, прошу не судить строго.

Что сделано:

  • раскраска одинаковых сайтов одним цветом в трех выдачах

Что будет сделано в ближайшее время для версии 0.02:

Читать полностью »

Тема для WP & Иконки от N.Design Studio. Локализация Mywordpress.ru
Записи в RSS Комментарии в RSS Log in