понедельник, 28 сентября 2015 г.

Логирование history в syslog

# vim /etc/profile
function log2syslog
{
   declare command
   command=$(fc -ln -0)
   logger -p local1.notice -t bash -i — $USER : $command
}
trap log2syslog DEBUG

$ echo test
test
$ grep bash /var/log/syslog
Sep 28 18:21:22 mint-17 bash[4887]: — myuser : echo test
Sep 28 18:21:31 mint-17 bash[4895]: — myuser : grep bash /var/log/syslog

Взято отсюда:
https://blog.rootshell.be/2009/02/28/bash-history-to-syslog/

При таком раскладе бывает, что выводит мусор в терминал.
Поэтому вариант получше тут: http://webplay.pro/linux/syslog-log-bash-history-every-user.html

среда, 23 сентября 2015 г.

Plesk: Not starting nginx as it is disabled in config

# service nginx start
Not starting nginx as it is disabled in config
# /usr/local/psa/admin/bin/nginxmng --enable
# service nginx status
nginx (pid  2063) is running...

вторник, 22 сентября 2015 г.

Как выбрать сервер

Сохраню ссылку тут.

Логирование atop каждые 10 секунд

По умолчанию atop производит логирование раз в 10 минут.
Я же хочу логировать каждые 10 секунд:
# yum install atop
# chkconfig --add atop
# chkconfig atop on
# vim /etc/sysconfig/atop
#INTERVAL=600
INTERVAL=10

# service atop start
# ps aufx | grep atop
root     26486  0.0  0.1 103248   860 pts/2    S+   13:22   0:00      \_ grep atop
root     26482  0.0  0.9  17840  5188 pts/2    S<L  13:22   0:00 /usr/bin/atop -a -w /var/log/atop/atop_20150922 10

воскресенье, 20 сентября 2015 г.

Открывать ISPmanager 5 по домену

Допустим имеем домен site.ru.
По умолчанию панель открывается по адресу: https://1.2.3.4/manager
Чтобы панель открывалась по адресу: https://site.ru/manager нужно поправить виртуальный хост для этого домена:
# vim /etc/nginx/vhosts/user/site.ru.conf
server {
   ...
   set $mgr_proxy "https://1.2.3.4:1500";
   location /manager {
      proxy_pass $mgr_proxy;
      proxy_redirect $mgr_proxy /;
      proxy_set_header Host $host:$server_port;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-Secret mary123;
      chunked_transfer_encoding off;
   }
   location ^~ /mancgi/ {
      proxy_pass $mgr_proxy;
      proxy_redirect $mgr_proxy /;
      proxy_set_header Host $host:$server_port;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-Secret mary123;
      chunked_transfer_encoding off;
   }
   location ^~ /manimg/ {
      alias /usr/local/mgr5/skins/;
   }
}

# service nginx restart

Аналогично можно сделать для всех панелей ISP, создав локейшн например для billmgr.

пятница, 18 сентября 2015 г.

Проверка установки GRUB на жестком диске

# dd if=/dev/sda bs=512 count=1 | xxd | grep -i grub
1+0 records in
1+0 records out
512 bytes (512 B) copied, 1.8019e-05 s, 28.4 MB/s
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420  GRUB .Geom.Hard 

Если не установлен, то последней строчки не будет.

четверг, 10 сентября 2015 г.

Запуск Dota2 reborn под свободным драйвером

При попытке запуска Dota2 reborn появлялась ошибка:
Required OpenGL extension "GL_ARB_separate_shader_objects" is not supported.  Please update your OpenGL driver.

Система Linux Mint 17.2.
Драйвер:
$ glxinfo | grep "OpenGL version"
OpenGL version string: 3.0 Mesa 10.1.3

Собственно обновляем OpenGL:
$ sudo add-apt-repository ppa:oibaf/graphics-drivers
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libegl1-mesa libegl1-mesa-drivers xserver-xorg-video-intel libgl1-mesa-dri libglapi-mesa mesa-vdpau-drivers

Проверяем:
$ glxinfo | grep "OpenGL version"
OpenGL version string: 3.0 Mesa 11.1.0-devel (git-13a974f 2015-09-10 trusty-oibaf-ppa)

Запускаем доту, ошибка исчезает.

P.S. Для показа FPS в игре не нужно в опциях запуска ничего прописывать, в настройках есть соответствующая галочка.

пятница, 4 сентября 2015 г.

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

Собственно единственный вариант который у меня заработал:
# find /dir/ -type f -delete

Варианты удаления через:
# rm -f /dir/*
# find /dir/ -name * -print0 | xargs -0 rm
# find /dir/ -name * -exec rm {} \;
# find /dir/ -name * | xargs -i rm {}
не работали, появлялась ошибка:
-bash: /usr/bin/find: Argument list too long

Превышение дисковых inodes в OpenVZ-контейнере

# vzctl start 101
Starting container...
vzquota : (warning) inode_hard_limit [1200100] < inode_current_usage [1319917]
Container is mounted
...
Killing container ...
Container was stopped
vzquota : (warning) inode_hard_limit [1200000] < inode_current_usage [1319917]
Container is unmounted

yum: DB_RUNRECOVERY: Fatal error, run database recovery

При попытке обновлении или другими операциями с yum появляется ошибка:
# yum update php
rpmdb: Thread/process 2805/139925463848704 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 -  (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

Побились базы, как починить:
# cd /var/lib/rpm
# rm -f __db.*
# rpm --rebuilddb
# yum update php

Обновление PHP 5.3 на 5.4, 5.5 и 5.6 из репозитория atomic и remi

В связке CentOS 6 и ISPmanager 5 по умолчанию ставится версия PHP 5.3 из репозитория CentOS.
Для обновления до 5.4 нужно подключить репозиторий atomic:
# wget http://www.atomicorp.com/installers/atomic
# sh atomic
# yum update php
# service httpd restart
# php -v
PHP 5.4.44 (cli) (built: Aug 10 2015 15:43:14) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

Если нужно также обновить Zend Guard Loader:
# wget http://downloads.zend.com/guard/6.0.0/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz
# tar xzvf ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz -C /usr/lib64/php
# chmod -R 755 /usr/lib64/php/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64/
# vim /etc/php.d/zend.ini
zend_extension=/usr/lib64/php/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64/php-5.4.x/ZendGuardLoader.so

i386:
# wget http://downloads.zend.com/guard/6.0.0/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-i386.tar.gz

Обновление до 5.5:
# yum install epel-release
# yum localinstall http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# yum update
# yum --enablerepo=remi,remi-php55 update

# php -v
PHP 5.5.30 (cli) (built: Oct  1 2015 09:29:18) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

IonCube Loader для PHP 5.5 и 5.6:
# wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
# tar xzvf ioncube_loaders_lin_x86-64.tar.gz

i386:
# wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

Пример для версии 5.6, для 5.5 аналогично:
# cp ioncube/ioncube_loader_lin_5.6.so /usr/lib64/php/modules/
# echo 'zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_5.6.so' > /etc/php.d/ioncube.ini

Обновление до 5.6 аналогично как и для 5.5, но вместо команды:
# yum --enablerepo=remi,remi-php55 update
нужно использовать:
# yum --enablerepo=remi,remi-php56 update

# php -v
PHP 5.6.14 (cli) (built: Sep 30 2015 14:07:43) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies