Удаление большого количества файлов

Несколько раз сталкивался с необходимостью удалить огроменное количество файлов в каталоге, при этом ни rm, ни find не помогали (например, Maildir, который не чистился годами, или mod-tmp каталог ISPmanager’а).
Выручил, внезапно, perl:

cd  /путь/к/целевому/каталогу/
perl -e 'for(<*>){((stat)[9]<(unlink))}'

 

Установка MikroTik RouterOS на Soekris net4511

Для решения одной задачи из забвения был вытянут Soekris net4511.

Забавная железяка. Подробнее, если интересно, можно о ней почитать тут.

Некоторое время назад, на такую же, имел опыт ставить FreeBSD. Но на этот раз нужна была RouterOS от MikroTik.

Читать дальше

Прикручиваем AWStats к nginx в Arch Linux

Возникла необходимость собирать статистику посещений одного из django-проектиков. Так как когда-то, давным-давно, имел кое-какой опыт работы с awstats, его же и решил прикрутить. Ранее, правда, работал с apache2, а тут nginx. Можно, конечно, поставить apache2, чтоб слушал какой-нибудь 8080-порт, или типа того. Но зачем?

Порывшись в интернетах нашел несколько гайдов по прикручиванию, но ни один не подошел/не заработал в силу разных причин. Потому приведу здесь компиляцию всего найденого.

Читать дальше

PostgreSQL после обновления ArchLinux

Очередной pacman -Syyu на этот раз прошел не столь незаметно как прежде. Отвалились все django-проектики, которые работают с postgresql. Причина проста — несовместимость формата БД версии 9.6 (стояла прежде) с версией 10.0-1 (которая стала после обновления), о чем радостно сообщил journalctl -xe:

ноя 27 11:35:44 archlinux systemd[1]: Starting PostgreSQL database server...
-- Subject: Начинается запуск юнита postgresql.service
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel

--
-- Начат процесс запуска юнита postgresql.service.
ноя 27 11:35:44 archlinux postgres[17505]: An old version of the database format was found.
ноя 27 11:35:44 archlinux postgres[17505]: You need to dump and reload before using PostgreSQL 9.6.
ноя 27 11:35:44 archlinux postgres[17505]: See http://www.postgresql.org/docs/9.6/static/upgrading.html

ноя 27 11:35:44 archlinux sudo[17502]: pam_unix(sudo:session): session closed for user root
ноя 27 11:35:44 archlinux systemd[1]: postgresql.service: Control process exited, code=exited status=1
ноя 27 11:35:44 archlinux systemd[1]: postgresql.service: Failed with result 'exit-code'.
ноя 27 11:35:44 archlinux systemd[1]: Failed to start PostgreSQL database server.
-- Subject: Ошибка юнита postgresql.service
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel

--
-- Произошел сбой юнита postgresql.service.
--
-- Результат: RESULT.

Читать дальше

Запуск X11 приложений по сети

Понадобилось как-то на выходных запустить приложение на рабочей машине, но так чтоб из дому, без похода к офису, да и так чтоб отрисовывалось оно на экране домашнего ПК.

Благо, OpenVPN настроен, IP своей рабочей станции знаю, sshd на ней запущен. Осталось всего ничего.

Читать дальше

Запуск Django-проекта на nginx с gunicorn в Arch Linux и с БД PostgreSQL

Первым делом ставим виртуальное окружение

sudo pacman -S python2-pip
sudo pip2 install virtualenv virtualenvwrapper
mkdir ~/Env
echo "export WORKON_HOME=~/Env" >> ~/.bashrc
echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2" >> ~/.bashrc
echo "source /usr/bin/virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
mkvirtualenv firstsite

Из-под виртуального окружения (в которое мы попадаем после mkvirtualenv) ставим необходимые модули и создаем Django-проект:

pip install django psycopg2 gunicorn
cd ~
django-admin startproject firstsite

Читать дальше

Изменение initramfs

Недавно возникла ситуация, когда после аварии системы охлаждения упал сервак. Ремонт сделали, но он упорно не хотел подниматься на том ядре, на котором он должен был. Матерился на то, что модуль ehci-hcd вызывает сбой, который приводит ядро в панику. Поскольку на том сервере нахер не нужен USB я решил не заморачиваться, а просто исключить его из списка загружаемых модулей.
Итак. Копируем куда-нибудь initrd образ и распаковываем его:

cp /boot/initrd-2.6.25.img ~/temp/
mv initrd-2.6.25.img initrd-2.6.25.img.gz
gzip -d initrd-2.6.25.img.gz
cpio -ic < initrd-2.6.25.img
rm initrd-2.6.25.img

Далее комментируем или удаляем строчки (тут приведены для моего случая):

#echo "Loading ehci-hcd.ko module" 
#insmod /lib/ehci-hcd.ko 
#echo "Loading ohci-hcd.ko module" 
#insmod /lib/ohci-hcd.ko 
#echo "Loading uhci-hcd.ko module" 
#insmod /lib/uhci-hcd.ko 
#mount -t usbfs /proc/bus/usb /proc/bus/usb

После этого нам остается упаковать обратно образ и залить его в /boot:

find . -print | cpio -oc | gzip -9 -c > ../initrd.new.img
cp initrd.new.img /boot/initrd.new.img

Ну и, естественно, внести изменения в /boot/grub/menu.lst