Category Archives: sadmin

sadmin

413 Request Entity Too Large в nginx

Защо се случва грешката "413 Request Entity Too Large" в nginx?
В apache2 php е сетнат upload_max_filesize 60 MB , но е забравено в nginx да се сетне client_max_body_size също на 60 MB и затова.

Ето го решението:

Файл: /etc/nginx/sites-enabled/example.com.8133

server
  {
  …
  location /
    {
    …
    client_max_body_size       60m;
    …
    }
  …
  }

Файл: /etc/php5/apache2/php.ini


upload_max_filesize = 60M

/etc/init.d/apache2 reload;
/etc/init.d/nginx reload;

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: -1 (from 1 vote)

Как да се разбере кои процеси пишат много на твърдия диск под GNU/linux

echo 1 > /proc/sys/vm/block_dump

tail -f /var/log/syslog

Резултат :)

Oct 28 16:02:49 beta kernel: [55628161.993810] kjournald(349): WRITE block 1983406184 on sda2
Oct 28 16:02:49 beta kernel: [55628161.993812] kjournald(349): WRITE block 2803287720 on sda2
Oct 28 16:02:49 beta kernel: [55628161.994474] rs:main Q:Reg(25405): WRITE block 429161088 on sda2
Oct 28 16:02:49 beta kernel: [55628161.994665] kjournald(349): WRITE block 1947309000 on sda2
Oct 28 16:02:51 beta kernel: [55628164.076174] flush-8:0(348): WRITE block 1997551216 on sda2
Oct 28 16:02:51 beta kernel: [55628164.076176] flush-8:0(348): WRITE block 1997551224 on sda2
Oct 28 16:02:51 beta kernel: [55628164.076178] flush-8:0(348): WRITE block 1997551232 on sda2
Oct 28 16:02:51 beta kernel: [55628164.076180] flush-8:0(348): WRITE block 1997551240 on sda2
Oct 28 16:02:51 beta kernel: [55628164.076183] flush-8:0(348): WRITE block 1997551248 on sda2
Oct 28 16:02:51 beta kernel: [55628164.076185] flush-8:0(348): WRITE block 1997551296 on sda2
Oct 28 16:02:51 beta kernel: [55628164.076188] flush-8:0(348): WRITE block 1997551328 on sda2
Oct 28 16:02:52 beta kernel: [55628164.624602] apache2(4498): dirtied inode 62352816 (other_vhosts_access.log) on sda2
Oct 28 16:03:14 beta kernel: [55628187.122972] pyzor(4521): dirtied inode 16826650 (snsqV8) on sda2
Oct 28 16:03:14 beta kernel: [55628187.123212] pyzor(4521): dirtied inode 16826650 (?) on sda2
Oct 28 16:03:14 beta kernel: [55628187.123933] pyzor(4521): dirtied inode 16826651 (?) on sda2
Oct 28 16:03:26 beta kernel: [55628198.518779] mysqld(26078): dirtied inode 63300606 (labdatastore.MYD) on sda2
Oct 28 16:03:26 beta kernel: [55628198.607859] mysqld(26078): dirtied inode 63300606 (labdatastore.MYD) on sda2
Oct 28 16:03:26 beta kernel: [55628198.607888] mysqld(26078): dirtied inode 63300605 (labdatastore.MYI) on sda2
Oct 28 16:03:26 beta kernel: [55628198.607891] mysqld(26078): dirtied inode 63300605 (labdatastore.MYI) on sda2

За да се спре дебуг-а

echo 0 > /proc/sys/vm/block_dump

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Как да се разбере кои wordpress блогове имат много коментари

Идеята е, че имаме много wordpress блогове на тази машина и много от тях са наспамени или просто имат много коментари. За да се следи прилагам просто решение:

find /var/lib/mysql/ -type f -size +1000k -name "*_comments.MYD" -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Резултат:
/var/lib/mysql/vhostext/wp_comments.MYD: 1,8M

Вижда, сече блога с база "vhostext" има таблица wp_comments от 1.8 MB, най- вероятно над 1000 коментара. Хубаво е да се провери.

Интересни аргументи:
аргумента 1000к всъщност е 1MB т.е. да показва файловете по- големи от 1MB.
Името което се търси е "*_comments.MYD" и има звезда защото не всички wordpress блогове ползват за префикс "wp_"

Това решение като цяло не казва какво трябва да се изтрие , а какво е хубаво да се погледне …

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)

Изтриване на коментари в WordPress (през MySQL)

Всички коментари се записват в табицата "wp_comments"

mysql> describe wp_comments;
+----------------------+---------------------+------+-----+---------------------+----------------+
| Field                | Type                | Null | Key | Default             | Extra          |
+----------------------+---------------------+------+-----+---------------------+----------------+
| comment_ID           | bigint(20) unsigned | NO   | PRI | NULL                | auto_increment |
| comment_post_ID      | bigint(20) unsigned | NO   | MUL | 0                   |                |
| comment_author       | tinytext            | NO   |     | NULL                |                |
| comment_author_email | varchar(100)        | NO   |     |                     |                |
| comment_author_url   | varchar(200)        | NO   |     |                     |                |
| comment_author_IP    | varchar(100)        | NO   |     |                     |                |
| comment_date         | datetime            | NO   |     | 0000-00-00 00:00:00 |                |
| comment_date_gmt     | datetime            | NO   | MUL | 0000-00-00 00:00:00 |                |
| comment_content      | text                | NO   |     | NULL                |                |
| comment_karma        | int(11)             | NO   |     | 0                   |                |
| comment_approved     | varchar(20)         | NO   | MUL | 1                   |                |
| comment_agent        | varchar(255)        | NO   |     |                     |                |
| comment_type         | varchar(20)         | NO   |     |                     |                |
| comment_parent       | bigint(20) unsigned | NO   | MUL | 0                   |                |
| user_id              | bigint(20) unsigned | NO   |     | 0                   |                |
+----------------------+---------------------+------+-----+---------------------+----------------+

Стойностите на колоната comment_approved са: 0 , 1, spam

# Изтриване на всички not approved коментари
DELETE FROM wp_comments WHERE comment_approved = 0;

# Изтриване на всички approved коментари
DELETE FROM wp_comments WHERE comment_approved = 1;

# Изтриване на всички спам коментари
DELETE FROM wp_comments WHERE comment_approved = 'spam';

# Изтриване по дата
DELETE FROM wp_comments WHERE comment_date > '2004-11-15 01:10:04' AND comment_date <= '2004-11-20 00:10:04'

# Изтриване на всички коментари
TRUNCATE wp_comments;

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Монтиране на linux drive ( extfs) ext3/4 под Windows

Идеята е, че имаме Windows и Linux на една и съща система. Идеята е като се работи под Windows да може да се ползва и дяла на GNU/Linux. За целта трябва да монтираме линукс партишъна под windows.

Препоръчвам две приложения за монтиране на GNU/Linux партишън под Windows:

1. Ext2explore -- Portable е

Ext2explore

 

2. Paragon ExtFS

paragon-extfs

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Grub 2 -- Коя система да се зарежда по подразбиране

Целата тук е да се направи Windows 7 да се зарежда по подразбиране.
Как да се разбере какъв е номера на Windows 7 ?

cat /boot/grub/grub.cfg |grep '^menuentry'|awk -F "'" '{print $2}'|grep -v 'recovery'|sort|uniq

Linux Mint 17 MATE 64-bit, 3.11.0-26-generic (/dev/sda4)
Linux Mint 17 MATE 64-bit, 3.13.0-34-generic (/dev/sda4)
Linux Mint 17 MATE 64-bit, 3.5.0-17-generic (/dev/sda4)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Windows 7 (loader) (on /dev/sda1)

Като се смята от "0" то следва, че "Windows 7 " е номер 5

vim /etc/default/grub


GRUB_DEFAULT=5

update-grub2

Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.13.0-34-generic
Found initrd image: /boot/initrd.img-3.13.0-34-generic
Found linux image: /boot/vmlinuz-3.11.0-26-generic
Found initrd image: /boot/initrd.img-3.11.0-26-generic
Found linux image: /boot/vmlinuz-3.5.0-17-generic
Found initrd image: /boot/initrd.img-3.5.0-17-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

reboot

Готово :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Инсталиране на grub след инсталиране на Windows

Проблема е, че след като беше инсталиран Windows на двуоперационна система (т.е. GNU/Linux + Windows), windows премахва съществуващият grub. За целта ще го инсталираме на ново и всичко ще се оправи :)

Зареждане на някаква Live дистрибуция

с fdisk се вижда какви дялове има и какво има на тях:

fdisk -l

Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xabababab

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   204802047   102297600    7  HPFS/NTFS/exFAT
/dev/sda3       204802048   208996351     2097152    6  FAT16
/dev/sda4       208996352  1465145343   628074496   83  Linux
За да се инсталира grub се изпълнява следното:

mount /dev/sda4 /mnt/
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot  /mnt/
grub-install /dev/sda

За да не се случват тези грешки се изпълняват инструкциите по- горе :)

грешка 1: grub-probe: error: failed to get canonical path of /cow.

грешка 2: /usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Sublime text -- инсталиране и кракване под Линукс

Инсталиране на sublime text 3065

apt-get update && apt-get install sublime-text

Кракване на sublime text 3065

1. изтегляне на крак:  Линк 1 или Линк 2

След като се изтегли крака както при windows ките програми се заменя оригиналния изпълним файл ( sublime_text )
На тази дистрибуция се намира тук: /opt/sublime_text/sublime_text

Архивираме файла
mv /opt/sublime_text/sublime_text /opt/sublime_text/sublime_text.bak

Копираме крака
cp "sublime_text crack linux 64 build 3065" /opt/sublime_text/sublime_text

Правим го изпълним
chmod +x /opt/sublime_text/sublime_text;

Изпълняваме го и ето кракнат е :)

sublime_text_cracked

 

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

замяна на текст във всички файлове(рекурсивно)

Искам текста "Twenty Thirteen" да го заменя с текста "Distance Running" но във всички файлове в тази директория както и файловете в под директориите и т.н. Ето как става с един ред ;)

find . -type f -print0 | xargs -0 sed -i 's/Twenty Thirteen/Distance Running/g'

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)