Debian
cron
cron — демон (планировщик задач в UNIX-подобных операционных системах).
Используется для выполнения заданий в определенное время, или через определенные промежутки времени.
Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории.
Для редактирования заданий используется утилита crontab.
Место хранения файлов:
/var/spool/cron/<user or crontab>
Добавление файла расписания:
crontab имя_файла_расписания
Вывести содержимое текущего файла расписания:
crontab -l
Удаление текущего файла расписания:
crontab -r
Для редактирования файла crontab вашего пользователя используется команда[2]:
crontab -e
Этот ключ позволяет выполнять вышеописанные действия для конкретного пользователя:
crontab -u username
Внимание: -u можно воспользоваться только запуская crontab от лица суперпользователя.
Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (Минута, Час, День, Месяц, День недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы '*' или '/'.
* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)
Пример файла:
# как обычно, с символа '#' начинаются комментарии
# в качестве командного интерпретатора использовать /bin/sh
SHELL=/bin/sh
# результаты работы отправлять по этому адресу
[email protected]
# добавить в PATH домашний каталог пользователя
PATH=/bin:/usr/bin:/home/paul/bin
#### Здесь начинаются задания
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
# выполнять 1 числа каждого месяца в 14 часов 15 минут
15 14 1 * * $HOME/bin/monthly
# каждый рабочий день в 22:00
0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john
23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
0 0 1 1 * echo "С новым годом!"
15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
0-59 * * * * echo "Выполняется ежеминутно"
0-59/2 * * * * echo "Выполняется по четным минутам"
1-59/2 * * * * echo "Выполняется по нечетным минутам"
# каждые 5 минут
*/5 * * * * echo "Прошло пять минут"
# каждое первое воскресенье каждого месяца. -eq 7 это код дня недели, т.е. 1 -> понедельник , 2 -> вторник и т.д.
0 1 1-7 * * [ "$(date '+\%u')" -eq 7 ] && echo "Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00"
#Запуск по ссылке каждый день
@daily wget -q --spider http://artana.ru >/dev/null 2>&1
#Запуск по ссылке каждые 2 минуты
*/02 * * * * wget -q --spider http://artana.ru >/dev/null 2>&1
#Запуск по ссылке в 7 утра и 10 минут
10 7 * * * curl -s http://artana.ru >/dev/null 2>&1
XRDP для сервера Debian
Установка графической оболочки и XRDP
Обновляем список доступных пакетов:
apt-get update && apt-get upgrade
Устанавливаем графическое окружение и xRDP:
apt-get -y install gnome-desktop-environment
apt-get -y install xrdp nano
Редактируем файл запуска xRDP. Наща цель — настроить автоматическую загрузку графической оболочки при запуске VPS. Воспользуемся любым редактором, например, nano:
nano /etc/xrdp/startwm.sh
Добавляем в файл startwm.sh следующие строки:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
. /etc/X11/Xsession
gnome-session
В обязательном порядке добавьте в конце пустую строку. Сохраните результаты при помощи нажатия клавиш Ctrl+O и выйдите из меню редактора — Ctrl+X.
Делаем перезапуск xRDP и сервера
service xrdp restart
reboot
Глобальная установка composer на Debian
Устанавливаем composer глобально, так чтоб в любом месте к нему можно было обратиться:
composer install
composer update
Composer — менеджер зависимостей для PHP, построенный на базе symfony2.
Оф сайт проекта: getcomposer.org
Сначала как он работает:
- У вас есть проект, который зависит от нескольких библиотек.
- Некоторые из этих библиотек зависят от других библиотек.
- Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
- Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.
Его аналоги в других языках это:
- npm для Node.js
- Bundler для Ruby
Статья на habrahabr
Установка composer под правами суперпользователя в директории /usr/local/bin
sudo su
cd /usr/local/bin
Скачиваем composer
curl -sS https://getcomposer.org/installer | php
Меняем права, чтоб запускать
chmod 0755 composer.phar
Создаем короткий симлинк
ln -s composer.phar composer
Добавим composer в расписание на авто-обновление
crontab -e
в редакторе добавим строку
5 1 * * 1 /usr/local/bin/composer.phar self-update > /dev/null 2>&1
то есть авто-обновление будет каждый понедельник
Готово
Обновление NGINX до последней версии Debian
Обновляем NGINX до последней версии на сервере с Debian.
Всё просто, но есть нюансы.
Итак, приступим.
Скачать и установить сертификат
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
Открываем репозиторий
sudo nano /etc/apt/sources.list
Дописать, если нет, следующие строки
Проверьте пакеты для вашей системы на оф сайте: nginx.org/ru/linux_packages.html
deb http://nginx.org/packages/debian/ wheezy nginx
deb-src http://nginx.org/packages/debian/ wheezy nginx
Сохраняем и обновляем
sudo apt-get update
sudo apt-get dist-upgrade
И если у нас уже установлен Nginx получаем ошибку
При обработке следующих пакетов произошли ошибки:
/var/cache/apt/archives/nginx_1.10.0-1~wheezy_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Перед обновлением, сначала нужно удалить старую версию nginx.
Комментируем строки в репозитории
sudo nano /etc/apt/sources.list
# deb http://nginx.org/packages/debian/ wheezy nginx
# deb-src http://nginx.org/packages/debian/ wheezy nginx
Сохраняем и обновляем
sudo apt-get update
Проверяем, что установлено в системе nginx
dpkg-query -W --showformat='${Package}\n' | grep nginx
Результат примерно следующий:
nginx
nginx-common
nginx-full
Удаляем
sudo apt-get remove nginx nginx-common nginx-full
Теперь снова идем /etc/apt/sources.list и уберем # где мы закомментировали, сохраняем и обновляем.
sudo apt-get update
sudo apt-get install nginx
Вот и всё.
Администрирование веб-сервера с помощью Ajenti
Ajenti — это среда, в которой выполняют все административные задачи на сервере, с помощью веб-интерфейса. Официальный сайт: ajenti.org.
Установка на сервер Debian.
Требования:
- Debian 6 и выше версия
- Установлен Python 2.6
Быстрая авто-установка
wget -O- https://raw.github.com/ajenti/ajenti/1.x/scripts/install-debian.sh | sh
Ручная установка
Добавление ключа для репозитория:
wget http://repo.ajenti.org/debian/key -O- | apt-key add -
Добавление записи в репозиторий /etc/apt/sources.list:
echo "deb http://repo.ajenti.org/debian main main debian" >> /etc/apt/sources.list
Установка:
apt-get update && apt-get install ajenti
Запуск:
service ajenti restart
После запуска нужно отредактировать config.
Панель будет доступна по протоколу HTTPS и порту 8000.
По-умолчанию username= root, password= admin.
Другие аналоги:
- Ispconfig, оф. сайт: ispconfig.org
- Vestacp, оф. сайт: vestacp.com
- Webmin, оф. сайт: webmin.com
- Zpanel, оф. сайт: zpanelcp.com