
Итак, добавим изначально логирование из Syslog.
В интерфейсе Graylog2 идем в меню System->Inputs
apt-get install samba
# mkdir newfolder
# mount --bind /folder/to/access/ newfolder
watch -n 2 gearadmin --status
watch -n 3 tail -10 /var/log/php-cli.log
dbpass="pass"
DATE_DIR=$(date +%Y-%m-%d-%H)
mkdir /home/nelex/MySQL_BKP/${DATE_DIR}
for dbname in `echo show databases| mysql -u root -p$dbpass`; do
echo "Dump $dbname..."
mysqldump -u root -p$dbpass $dbname > "~/MySQL_BKP/${DATE_DIR}/$dbname.sql"
mkdir ~/MySQL_BKP
chmod +x mysqlbackup.sh
#!/bin/bash
indir=$1
dblogin="root"
dbpass="pass"
postfix=".sql"
prefix="./"
cd $indir
for file in `find ./ -type f -name "*$postfix"`
do
table_tmp=${file%$postfix}
table_tmp=${table_tmp#$prefix}
table=${table_tmp,,}
mysql -u$dblogin -p$dbpass -e "create database $table default charset utf8"
mysql -u$dblogin -p$dbpass $table < $file
chmod +x mysqlbackup.sh
import_from_dir.sh ~/MySQL_BKP/2015-06-02-14
dpkg: unrecoverable fatal error, aborting:
files list file for package 'imagemagick-6.q16' is missing final newline
# mkdir /var/lib/dpkg/info/old
#mv /var/lib/dpkg/info/imagemagick-6.q16.* \ /var/lib/dpkg/info/old/
bash: /usr/bin/apt-get: cannot execute binary file: Exec format error
dpkg -i apt.deb
Unpacking libapt-pkg-dev:amd64 (1.0.9.10) over (1.0.9.7) ...
dpkg: dependency problems prevent configuration of libapt-pkg-dev:amd64:
libapt-pkg-dev:amd64 depends on libapt-pkg4.12 (= 1.0.9.10); however:
Version of libapt-pkg4.12:amd64 on system is 1.0.9.7.
libapt-pkg-dev:amd64 depends on libapt-inst1.5 (= 1.0.9.10); however:
Version of libapt-inst1.5:amd64 on system is 1.0.9.7.
dpkg: error processing package libapt-pkg-dev:amd64 (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
libapt-pkg-dev:amd64
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
# mysql -pmypass mydm < mydb.sql
ERROR 1064 (42000) at line 3597: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '*/' at line 1
/*!50003 */
#vim mydb.sql
:3597
:wq
mysql -pmypass mydm < mydb.sql
dpkg: error processing procps (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
procps
E: Sub-process /usr/bin/dpkg returned an error code (1)
# lsb_release -rd
Description: Debian GNU/Linux 8.0 (jessie)
Release: 8.0
cp /etc/sysctl.conf /etc/sysctl.conf_bkp
#chromium&
#chromium >/tmp/chomium.log&
Fontconfig error: Cannot load default config file
modprobe -r brcmsmac
modprobe brcmsmac
-a No such device
wlan0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.168.1.105 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:134 errors:0 dropped:0 overruns:0 frame:0
TX packets:167 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:50
RX bytes:26716 (26.0 KiB) TX bytes:39745 (38.8 KiB)
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
export XDG_CACHE_HOME="/dev/shm/.cache"
#!/bin/bash
export XDG_CACHE_HOME="/dev/shm/.cache
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
[Desktop Entry]
Name=Skype
Comment=Skype Internet Telephony
Exec=PULSE_LATENCY_MSEC=30 skype %U
Icon=skype.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
MimeType=x-scheme-handler/skype;
X-KDE-Protocols=skype
PULSE_LATENCY_MSEC=30 skype&
PULSE_LATENCY_MSEC=30 mocp
В Debian-based системах бывают по несколько версий приложений одного и того же типа. К примеру может быть установлено несколько текстовых редакторов. Если вы хотите выбрать приложение по умолчанию то команда update-alternatives вам пригодиться. Запустите команду и получите список альтернатив для выбора. Я покажу пару команд для выбора приложения по умолчанию.
В очередной раз столкнулся с тем что корневой раздел сильно засорился. Чем, было не понятно. Оказалось что при каждом apt-get update и aptitude update полученные списки файлов сохраняются в директории /var/lib/apt/lists/partial, это легко оказалось выяснить введя команду:
du -xh /var | sort -n |grep G
Из 61Гб под рутовый раздел, 31Гб занимали файлы в этой директории. Сразу оговорюсь, система стоит давненько, обновляю достаточно часто. Сижу на миксе из experimental/testing.
Чуть погуглив нашелся и ответ. Заключается в простом удалении всех файлов из данной директории. Содержимое директории будет пересоздано при новом обновлении списка пакетов, но уже со свежими записями. Вот вам и занятость диска.
Репозиторий тем для Aweome WM.
Качаем, скидываем в /home/username/.config/awesome/themes содержимое. Редактируем файл /home/username/.config/awesome/rc.lua
Заменяя в строке:
beautiful.init("/home/username/.config/awesome/themes/snow/theme.lua") на выбранную тему и делаем Ctrl+Mod4(у меня клавиша Windows)+r и смотрим. Сами скриншоты тем можно увидеть в папке 0-screenshots.
Awesome темы покруче. Установка их несколько сложнее, но и вид у них гораздо интересней, достаточно глянуть пару скриншотов тем:
Тема Copland
Тема Powerarrow Darker
Установка внутри.
Очень маленькая заметка, но иногда нужно. =)
printf "string" | md5sum
Еще вариант
echo -n "string"|md5sum
А вот если без ключа -n, то получим уже совсем другой хеш.
Если передать в md5sum через echo без ключа -n, то в строку добавляется символ переноса строки. Соответственно и результат уже другой.
Стала задачка выяснить почему сессии хранятся на сервере не более чем пол часа. После этого естественно происходит сброс сессий и пользователь оказывается разлогиненым. Полез в куки посмотреть, там время жизни куки составляло более года. Файл php.ini тоже выглядел вполне нормально, время жизни тоже около года. Немного поискав в кроне обнаружил такой вот скрипт от хостера. Позабавило. Видать для того чтобы не накапливалось большое количество файлов сессий. Вот только зачем удалять так часто?
Сам файл находился по пути /etc/cron.hourly/fornexrmphpsess
С таким вот интересным содержимым.
#!/bin/bash
#внимание!! скрипт рассчитан на выполнение оболочкой BASH!!!!
#засыпаем на случайное время - от 0 до 20 минут
T=$(($RANDOM/27))
sleep $T
#и удаляем все старые сессии PHP
find /tmp/ -maxdepth 3 -nowarn -type f -name "sess_*" -amin +30 -delete
find /var/www/*/data/*tmp/ -nowarn -type f -name "sess_*" -amin +30 -delete
find /var/tmp/ -maxdepth 3 -nowarn -type f -name "sess_*" -amin +30 -delete
find /var/lib/php*/ -maxdepth 3 -nowarn -type f -name "sess_*" -amin +30 -delete
Вот добрался до новой версии ядра, 3.12. Долгое время просто руки не доходили. Я уже несколько раз ранее собирал эти драйвера, но на более старые версии, к пример 3.10
Так вот собираем почти так же как и обычно. Качаем драйвера под свою архитектуру с сайта:
Когда DPKG, APT, APTITUDE начинают медленно работать стоит попробовать выполнить следующие команды:
1) dpkg --clear-avail
2) dpkg --forget-old-unavail
3) Если используете grep-available или другую утилиту для проверки доступных файлов, обновите файл используя sync-available (в пакете dctrl-tools).
При запуске PhpStorm из-под Awesome WM у меня вместо среды разработки начало показываться просто белое окно. Решение уже существует и находиться Здесь.
Заключается оно в том чтобы использовать OpenJDK с уже существующими фиксами этой проблемы. Для использования из консоли нужно ввести следующую команду:
$ _JAVA_AWT_WM_NONREPARENTING=1; export _JAVA_AWT_WM_NONREPARENTING
Так же можно заставить поверить Java что вы используете другой рабочий стол командой:
$ wmname LG3D
Из пакета suckless-tools
Если вас не устраивает стандартная функция автоответчика и хочется написать свою собственную, то ее вполне можно написать используя встроенный механизм работы с базой данных. База данных у Asterisk на основе berkeley db.
Эта маленькая заметка предполагает что вы уже работали с Asterisk и знаете что такое Dialplan-ы и большую часть того что с ними связано. Так же AGI(Asterisk Gateway Interface). AGI это интерфейс расширения Asterisk с помощью других языков программирования, в частности PHP, Для использования AGI необходимо создать файл в директории /usr/share/asterisk/agi-bin/ в нашем случае это файл worktime.php. AGI использует стандартные потоки ввода/вывода и потока вывода ошибок. Ниже вполне обычный код PHP за некоторым исключением, касающимся как-раз таки ввода-вывода. Все касательно PHP AGI замечательно рассказано в книге Asterisk: будущее телефонии
Ну а теперь сам код:
В общем и целом пишу только как маленькую заметку кто пытался поставить xhprof через PECL но из-за ошибки:
Пало подозрение на нестабильность интернет-канала к VPS. Можно оплатить систему мониторинга для удобства работы, но так как дело разовое решено было использовать подручные средства. Решение из жанра велосипеды велосипедистые. Итак, что мы будем использовать:
- screen
- ping
Итак, что нам нужно будет, так это вывод команды ping записанный в файл. Хотя конечно можно и в консоли посмотреть, но уж пусть лучше в файл на всякий случай.
И как всегда с новым ядром, новые проблемы. Сперва сборку драйверов пропатчил патчами указанными в прошлой статьей. После выбило такую вот ошибку:
make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Вход в каталог `/usr/src/linux-headers-3.10-1-amd64'
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
CC [M] /home/nelex/Linux/b43/src/wl/sys/wl_linux.o
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c: In function 'wl_reg_proc_entry':
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3196:2: error: implicit declaration of function 'create_proc_entry' [-Werror=implicit-function-declaration]
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3196:22: warning: assignment makes pointer from integer without a cast [enabled by default]
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3201:16: error: dereferencing pointer to incomplete type
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3202:16: error: dereferencing pointer to incomplete type
/home/nelex/Linux/b43/src/wl/sys/wl_linux.c:3203:16: error: dereferencing pointer to incomplete type
cc1: some warnings being treated as errors
make[4]: *** [/home/nelex/Linux/b43/src/wl/sys/wl_linux.o] ?????? 1
make[3]: *** [_module_/home/nelex/Linux/b43] ?????? 2
make[2]: *** [sub-make] Ошибка 2
make[1]: *** [all] Ошибка 2
make[1]: Выход из каталога `/usr/src/linux-headers-3.10-1-amd64'
make: *** [all] Ошибка 2
В итоге почти идентично следуя моей прошлой статье. Единственным исключением являются как-раз таки патчи. Два патча можно найти по ссылке и сохранить как файлы патчей.
Дальше патчим сперва 0006-add-support-for-linux-3.10.0.patch, потом 0007-switch-proc-create-3.10.0.patch
make
make install
sudo depmod
modprobe wl
Все, драйвера должны заработать. Спасибо автору патча,
Всех приветствую, это очередная статья о моих скитаниях в мире интернета, серверов, протоколов и прочего. В этой статейке мы поставим очень легко и просто систему мониторинга Zabbix.
ZABBIX — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым
Для хранения данных используется MySQL, PostgreSQL, SQLite или Oracle. Веб-интерфейс написан на PHP. ZABBIX поддерживает несколько видов мониторинга:
Simple checks — может проверять доступность и реакцию стандартных сервисов, таких как SMTP или HTTP без установки какого-либо программного обеспечения на наблюдаемом хосте.
ZABBIX agent — может быть установлен на UNIX-подобных или Windows хостах для получения данных о нагрузке процессора, использования сети, дисковом пространстве и т. д.
External check — выполнение внешних программ. ZABBIX также поддерживает мониторинг через SNMP.
Итак. Имеем Zabbix 2.0.6 в дистрибутиве. Имеем сам дистрибутив Debian GNU\Linux.
Сталась небольшая задачка проверять директорию сайта на появление новых файлов, вкладывать их в письмо и отправлять на нужный почтовый ящик.
Пишем файл скрипта:
Не знаю с каких пор, но в астериске драйвер g729 не присутствует в поставке. Как итог, нужно качать и заливать вручную.
Сейчас я расскажу как я легко и быстро перешел с MySQL на MariaDB. Если у вас стоял MySQL то MariaDB подхватит его базы, но на всякий случай лучше все-таки сделайте бекап.
В общих чертах все ну очень просто.
Сейчас я опишу процесс как я устанавливал и настраивал связку Nginx+PHP-fpm для использования вместо Apache2 который стоял у меня до того. Естественно ставил я все это на локалхосте, на котором и занимаюсь веб-девом. Процесс не тривиальный и достаточно прост. Более полный мануал на который я ориентировался в описан статье Nginx+php-fpm+perl под Debian Squeeze. У меня же несколько короче и с некоторыми изменениями, в виду того что большую часть настроек майтейнеры пакетов и так уже взяли на себя.
Иногда бывает такая ситуация, когда папка хранящая сессии заполняется что казалось бы невообразимо большим количество нод на диске исчерпывается и команда du -ih показывает следующую картину:
~# df -ih
Файловая система Iнодов IИспользовано IСвободно IИспользовано% Cмонтировано в
/dev/md1 5,9M 5,7M 141K 98% /home
Печально выглядит, правда? Для начала освободим место на диске. Так как команда rm -R /path/mod-tmp/* вам не поможет скорее всего, так как само количество в 5М сайтов нагрузит команду так что ее выполнения придется ждать весьма не скоро, если она вообще не выпадет с ошибкой. Так вот
Надоели в последнее время мне проблемы с wicd и wifi-radar для подключения к Wi-Fi в Linux, и я решил что пора бы подключаться через консоль, минуя все эти надстройки в виде программ для подключения. На самом деле все оказалось еще проще чем я предполагал. И сейчас я покажу как это делается. А тем кому пока не надоело подключатся через программы стоит добавить эту заметку в Избранное, в дальнейшем пригодиться.
Итак, предполагаем что подключение происходит с шифрованием WPA2, так как сейчас это самое популярное и наиболее безопасное решение, чем к примеру устаревший WPA.