понедельник, 14 октября 2013 г.

Не собирается mdraid - resync=PENDING

Оказывается, resync=PENDING, из-за которого не собирается и не ребилдится mdraid-массив, очень легко победить.
Для этого достаточно выполнить команду:
mdadm --readwrite /dev/mdX
где X - номер массива, например, /dev/md1.
И после этого массив сразу начинает собираться:
 md1 : active raid1 sda2[1] sdb2[0] 943587136 blocks super 1.2 [2/2] [UU] [>....................] resync = 1.2% (12186176/943587136) finish=182.4min speed=85095K/sec

воскресенье, 5 мая 2013 г.

Исправляем ошибку "sorry, you must have a tty to run sudo"

Внезапно столкнулся с тем,  что из крона не отрабатывал скрипт, который прекрасно отрабатывал из консоли. Выдавал в STDERR указанную ошибку-  sorry, you must have a tty to run sudo.
Проблема решается изменением файла /etc/sudoers. Для его изменения рекомендую использовать утилиту visudo, а не править редактором напрямую. Находим строку:
Defaults    requiretty
И закомментируем её:
#Defaults    requiretty

И всё, sudo отлично работает из под cron.


Примечание: на самом деле, лучше переписать скрипты без использования sudo, поскольку эта закомментирование этой директивы наносит некоторый ущерб безопасности сервера:

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".

понедельник, 22 апреля 2013 г.

Исправляем ошибку rsync ERROR: module is read only

Иногда при попытке записи на rsync-сервера с помощью команды rsync может вылезти ошибка вида:

ERROR: module is read only 
С первого раза и не понятно, что это за модуль и почему он read-only.
На самом деле всё просто, достаточно просто добавить в конфиг /etc/rsyncd.conf в соответствующий раздел параметр read only = no.

Ниже приведён пример конфига /etc/rsyncd.conf:

uid = nobody
gid = nobody
use chroot = no
max connections = 8
syslog facility = local5
pid file = /var/run/rsyncd.pid
[backups]
path = /var/backups-remote
read only = no


воскресенье, 21 апреля 2013 г.

CentOS / Fedora - исправляем ошибку yum: database disk image is malformed

Проблема

Столкнулся с ошибкой, когда yum после команды yum update стал выдавать ошибку:
Error: database disk image is malformed
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Попытки решения

Указанные в этом выводе команды не помогли.
Нагугленные команды типа:
 mv /var/lib/rpm/__db* /tmp
rpm --rebuilddb
или
 yum history new
также не помогли.

Решение

В итоге решение проблемы пришло в виде команды:
 yum clean dbcache
Однако после неё вылезла другая ошибка:
sqlite3.OperationalError: table trans_beg already exists
Она решилась с помощью команды
 yum history new

среда, 17 апреля 2013 г.

batch resize, или массовое изменение размера картинок в Linux Debian/Ubuntu

Столкнулся с необходимостью быстро отресайзить папку фотографий.  Так как под рукой только Linux Ubuntu, пришлось искать способы под него.
Конечно, была идея отресайзить все картинки через Гимп, но это стрельба из пушки по воробьям. Причём медленная стрельба.
А простой и красивый способ нашёлся следующий.

понедельник, 25 июня 2012 г.

Iptables - скриптик для защиты от ДДОСа

Просто скриптик, утянутый на память с Хабра:

#!/bin/bash PATH=/sbin:/usr/sbin:$PATH date=`date +"%Y%m%d%H%M"` iptables -t raw -L PREROUTING -vnxZ | perl -ne 'split/ +/;print "$_[8]\n" if $_[1] ne "0";' | xargs -I {} iptables -t raw -D PREROUTING -s {} -j DROP log_dir=/var/lib/vservers/perfccc/var/www/logs/typofront/ cd ${log_dir} pid=`cat /var/lib/vservers/perfccc/var/run/nginx.pid` mv ${log_dir}/typofront.access.log ${log_dir}/typofront.access.${date}.log /usr/sbin/vkill -s USR1 ${pid} grep "GET /experts/extrasensy/index.html HTTP" ${log_dir}/typofront.access.${date}.log | cut -d ' ' -f 1 | sort | uniq -dc | sort -nr | perl -ne 'split /\s+/; print "$_[2]\n" if ($_[1]>30);' | xargs -I {} iptables -t raw -I PREROUTING -s {} -j DROP /bin/gzip ${log_dir}/typofront.access.${date}.log

четверг, 1 марта 2012 г.

PHP - T_PAAMAYIM_NEKUDOTAYIM

Столкнулся с ошибкой:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /var/www/index.php
Оказалось, что это иврит, написанный английскими буквами. Переводится как двойное двоеточие, то есть конструкция '::'.