Category Archives: *nix General

MySQL console client tuning

сделаем красивое удобное приглашение

mysql> prompt (\u@\h) [\d] >
PROMPT set to '(\u@\h) [\d] >'
(root@localhost) [database] >

где \u — пользователь, \h — хост и \d — база данных

(root@localhost) [database] >pager less -iMSx4 -FX
PAGER set to 'less -iMSx4 -FX'

тепереь у нас есть удобная навигация стрелочками туда-сюда и влево-вправо ;)

# cat ~/.my.cnf
[client]
default-character-set=utf8
 
[mysql]
pager = 'less -iMSx4 -FX'
prompt = '(\u@\h) [\d] > '

добавим в конфиг чтобы так было всегда. в раздел [mysql] иначе остальные клиенты (mysqldump или mysqladmin) будут ругаться.

MySQL console client and multi-byte output problem

mysql> SELECT 'John Doe' as 'Джон Доу';
+-----------------+
| Джон Доу |
+-----------------+
| John Doe        |
+-----------------+
1 row in set (0.00 sec)
 
mysql> set NAMES utf8;
Query OK, 0 rows affected (0.00 sec)
 
mysql> SELECT 'John Doe' as 'Джон Доу';
+-----------------+
| Джон Доу |
+-----------------+
| John Doe        |
+-----------------+
1 row in set (0.00 sec)

Как видим set NAMES utf8 не помог. оказывается это старая проблема.

# mysql --default-character-set=utf8
 
mysql> SELECT 'John Doe' as 'Джон Доу';
+-----------------+
| Джон Доу        |
+-----------------+
| John Doe        |
+-----------------+
1 row in set (0.00 sec)

создаем конфиг для клиента

# cat ~/.my.cnf
[client]
default-character-set=utf8

Vesta Control Panel

About:

  • open source hosting control panel
  • easy and focused interface
  • innovative web technologies

Features:

  • Web Server
  • DNS server
  • Database Server
  • Mail Server
  • FTP Server
  • Nginx out of the box
  • SSL certificates & SNI
  • Wildcard support
  • Configuration Templates
  • DKIM support
  • Fast Backups
  • System Monitoring
  • AntiSpam / Antivirus
  • WHMCS billing support
  • EPEL integration
  • Simple and Clean GUI
  • Powerfull CLI
  • Reliable Platform
  • Open Data Format
  • GPL v3 License

Install:

# Connect to your server as root via SSH
ssh [email protected]
# Download installation script
curl -O http://vestacp.com/pub/vst-install.sh
# Run it
bash vst-install.sh

Links:
Official site
Habrahabr
Vesta Installation Screencast

pdsh на MacOS

Ни в системе ни в портах нет очень нужной штуки для администрирования… такой как “пыдыщь” :(
У нас конечно же стоит XCode и порты, так что собрать самим не составит труда:

$ cd ~/Downloads
$ curl -O http://pdsh.googlecode.com/files/pdsh-2.29.tar.bz2
$ tar jxvf pdsh-2.29.tar.bz2
$ cd pdsh-2.29
$ ./configure --prefix=/usr/local --with-ssh
$ sudo make install

проверяем:

$ pdsh -Rssh -w cp1,cp2,cp3 uptime
cp3:  15:05:25 up 7 days, 17:23,  0 users,  load average: 0.07, 0.32, 0.18
cp1:  15:05:25 up 7 days,  6:21,  0 users,  load average: 0.43, 0.92, 0.92
cp2:  15:05:25 up 7 days, 15:00,  0 users,  load average: 0.63, 1.68, 1.26
$

вот так одной коммандой убили трех зайцев :)

AR8131 network card driver for Linux

Motherboard: ASUS P5G41T-M LX
Kernel: 2.6.18-6-pve

1. Download source code:

$ wget http://dlcdnet.asus.com/pub/ASUS/mb/socket775/P5G41T-M_LX/Linux_Driver.zip

2. Unpack archives:

$ unzip -o Linux_Driver.zip
$ cd Linux/LAN/
$ tar zxvf AR8131_AR8132-linux-v1.0.0.10.tar.gz
$ cd src/

3. Modify kcompat.h

--- kcompat.h   2009-05-22 06:40:10.000000000 +0400
+++ kcompat.h   2013-05-20 18:16:27.000000000 +0400
@@ -1556,7 +1556,8 @@
 #endif /* > 2.6.22 */
 
 /*****************************************************************************/
-#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) )
+#if 0
+/* #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) ) */
 /* NAPI API changes in 2.6.24 break everything */
 struct napi_struct {
        /* used to look up the real NAPI polling routine */

4. Compile and use:

$ sudo make install

pvremove без vgreduce

удаляем том из группы

# pvremove /dev/sda2
  Can't pvremove physical volume "/dev/sda2" of volume group "pve" without -ff

не удаляется.. ладно, заставим удалиться

# pvremove -v -ff /dev/sda2
Really WIPE LABELS from physical volume "/dev/sda2" of volume group "pve" [y/n]? y
  WARNING: Wiping physical volume label from /dev/sda2 of volume group "pve"
  Labels on physical volume "/dev/sda2" successfully wiped

ура удалился! проверим

# pvdisplay
  Couldn't find device with uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'.
  Couldn't find device with uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'.
  Couldn't find device with uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'.
  Couldn't find all physical volumes for volume group pve.
  Couldn't find device with uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'.
  Couldn't find all physical volumes for volume group pve.
  Volume group "pve" not found
  Skipping volume group pve
  Couldn't find device with uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'.
  Couldn't find all physical volumes for volume group pve.
  Couldn't find device with uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'.
  Couldn't find all physical volumes for volume group pve.
  Volume group "pve" not found
  Skipping volume group pve

о ужас! все сломалось! блин, забыл vgreduce перед pvremove! не паникуем:

# pvcreate /dev/sda2 --uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'
  Couldn't find device with uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'.
  Couldn't find device with uuid 'L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO'.
  Physical volume "/dev/sda2" successfully created

тут обязательно указываем uuid из предидущих сообщений если забыли! и теперь проверим:

# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               pve
  PV Size               465.26 GB / not usable 1.50 MB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              119106
  Free PE               119106
  Allocated PE          0
  PV UUID               L5hT2P-fPEa-Lumy-agV1-Aluk-PqTK-OATJJO
 
  --- Physical volume ---
  PV Name               /dev/md1
  VG Name               pve
  PV Size               465.26 GB / not usable 1.44 MB
  Allocatable           yes
  PE Size (KByte)       4096
  Total PE              119106
  Free PE               1023
  Allocated PE          118083
  PV UUID               bocm1Z-yfd3-k6cl-8Lpg-OUB3-TiCz-Sxxdys

фух! тома на месте! теперь делаем как надо:

# vgreduce pve /dev/sda2
  Removed "/dev/sda2" from volume group "pve"
# pvremove /dev/sda2
  Labels on physical volume "/dev/sda2" successfully wiped

теперь без всяких вопросов!
на будущее: если задали вопрос – НЕ ТОРОПИТЕСЬ ГОВОРИТЬ YES !!!

когда много писем в очереди postfix

1. посмотреть вообще от каких емейлов очередь:

# mailq | grep "^[^ \(-]" | awk '{ print $7 }' | sort -u

2. красивый вывод с сортировкой по датам и количеству:

# mailq | grep "^[^ \(-]" | awk '{ print $4,$5,$7 }' | sort -k 1,1M -k 2n | uniq -c