+2.26
4 читателя, 59 топиков

Как обнаружить большие файлы на своем сервере

Тем, кто содержит собственный веб/фтп/гейм/etc-сервер на *nix наверняка знакома проблема, когда что-то начинает работать «не так», и, долго копаясь в различных настройках, пытаясь выяснить причину столь странного поведения серверных приложений, мы обнаруживаем, что на сервере банально закончилось дисковое пространство.
Это значит — самое время навести порядок в вашей файловой системе, хотя бы путем удаления больших (ОГРОМНЫХ) и неиспользуемых файлов. Также очень сильно могут разрастаться логи (/var/log/messages, access.log и error.log апача и многие, многие другие). В общем, нужные файлы необходимо забэкапить на какой-нибудь другой носитель, а ненужные — просто удалить/очистить. При этом лог-файлы советую не удалять и снова воссоздавать (чтобы избежать проблем с правами доступа), а чистить их содержимое командой:
echo > /path/to/log-file

Так как же найти большие файлы в системе? Конечно, с помощью команды «find».

Для FreeBSD:
Переходим в директорию, относительно которой мы будем искать файлы. (для всей системы — «cd /»). Затем, чтобы например найти все файлы размером более 100МБ, нужно выполнить команду:

find . -type f -size +100M -exec ls -al {} \;

или
du /partition_or_directory_name | sort -rn | head

или
find / -size +500M -exec ls -l {} \;


Для Linux:
Команда выглядит следующим образом:
find . -type f -size +100M -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

(или, для разных дистрибутивов бывают вариации, например:)
find . -type f -size +100M -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

Свой Windows на Hetzner VServer

Способ установки пиратской копии Windows на Hetzner VServer:
Лицензию можно ставить из образа :) www.hetzner.de/hosting/produkte_rootserver/windows-standard

1. Качаем или создаем образ нужной Windows.
2. Устанавливаем на рабочий ПК QEMU для Windows (Качаем отсюда).
3. Создаем образ диска в QEMU и устанавливаем на него Windows из образа, изменив qemu-x86_64.bat:
qemu-img create windows.img 10240M

Затем:
qemu -cdrom windows_install.iso -boot d windows.img -m 512

Где:
  • windows.img — название файла-образа HDD для Вашей Windows.
  • 10240M — размер виртуального HDD Вашей Windows м мегабайтах.
  • windows_install.iso — файл образа установочного диска Вашей Windows (кидаем в папку с qemu-x86_64.bat).
  • 512 — сколько оперативной памяти выделим под установку
4. В панели управления выбираем rescue mode, перезагружаем VServer, заходим по ssh и создаем 2 раздела NTFS. Лично я использовал cfdisk:
cfdisk /dev/dha

Первый раздел типа primary, второй — extended. Затем:
mkfs.ntfs /dev/hda1

mkfs.ntfs /dev/hda5

5. Первый раздел делаем загрузочным (ставим метку bootable).
6. Загружаем образ диска с установленной (нашей) Windows, созданный QEMU на сервер во второй раздел NTFS. Можно использовать любой sftp-клиент или ftp сервер (использовал WinSCP).
7. Монтируем в системе rescue mode наш образ например в /mnt и копируем файлы установленного нами «своего» Windows на первый (загрузочный) раздел VServer:
mkdir /mnt/new

mkdir /mnt/old

mount -t ntfs-3g /dev/hda1 /mnt/new

modprobe nbd max_part=63

qemu-nbd -c /dev/nbd0 windows.img

partprobe /dev/nbd0

mount /dev/nbd0p1 /mnt/old

cp -Rp /mnt/old/* /mnt/new

8. Устанавливаем в rescue mode утилиту ms-sys:
Качаем тут. Собираем (нужен gettext):
apt-get install gettext

make && make install

9. С помощью данной утилиты исправляем Windows MBR на загрузочном разделе VServer:
/usr/local/bin/ms-sys -w /dev/hda

10. Перезагружаем VServer.
11. С помощью Remote Console дальше настраиваем Windows.

Ограничение числа подключений с одного IP-адреса в Nginx

Используйте ngx_http_limit_zone_module следующим образом прописав директив limit_zone и limit_conn в конфигурационном файле nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
    
    limit_zone   one  $binary_remote_addr  4m;
    limit_conn   one  8;
...

Тем самым мы ограничили число подключений в 8 одновременных коннектов с одного IP-адреса и выделили под это кэш (где будут запоминаться адреса, а в последствии высвобождаться) размером в 4 мегабайта.

Всё что вам нужно знать про память Windows. Читать от начала и до конца. Ну, про 333 можно не читать

Одна простая вещь

Если вы хотите защитить важную директорию от удаления вследствие небрежного обращения с командой rm -rf *, то создайте файл с именем -i, это заставит rm запросить подтверждение:
touch ~/important-directory/-i

Как убить тяжелый MySQL запрос?

1. Зайти на сервер по SSH.
2. Выполнить
$ mysql -u USER -p
USER — это ваш пользователь MySQL
3. Ввести пароль для USER.
4. Выполнить
show processlist;
(не забудьте про точку с запятой в конце)
5. Узнать идентификатор тяжелого запроса.
6. Выполнить
kill query 12345;
где 12345 заменить на идентификатор запроса.

Как узнать, какие модули Apache загружены в текущий момент?

В httpd.conf большой список незакомментированных модулей. Но есть ощущение, что список не полный. Как можно посмотреть полный спсиок модулей, который прямо сейчас загружен (используется) апачем?

Зайти на сервер по SSH и выполнить
apachectl -t -D DUMP_MODULES

Перенаправление на мобильную версию сайта

Создайте файл .htaccess (или добавьте в существующий) с таким содержанием:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} acs [NC,OR]
RewriteCond %{HTTP_USER_AGENT} alav [NC,OR]
RewriteCond %{HTTP_USER_AGENT} alca [NC,OR]
RewriteCond %{HTTP_USER_AGENT} amoi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} audi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} aste [NC,OR]
RewriteCond %{HTTP_USER_AGENT} avan [NC,OR]
RewriteCond %{HTTP_USER_AGENT} benq [NC,OR]
RewriteCond %{HTTP_USER_AGENT} bird [NC,OR]
RewriteCond %{HTTP_USER_AGENT} blac [NC,OR]
RewriteCond %{HTTP_USER_AGENT} blaz [NC,OR]
RewriteCond %{HTTP_USER_AGENT} brew [NC,OR]
RewriteCond %{HTTP_USER_AGENT} cell [NC,OR]
RewriteCond %{HTTP_USER_AGENT} cldc [NC,OR]
RewriteCond %{HTTP_USER_AGENT} cmd- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} dang [NC,OR]
RewriteCond %{HTTP_USER_AGENT} doco [NC,OR]
RewriteCond %{HTTP_USER_AGENT} eric [NC,OR]
RewriteCond %{HTTP_USER_AGENT} hipt [NC,OR]
RewriteCond %{HTTP_USER_AGENT} inno [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ipaq [NC,OR]
RewriteCond %{HTTP_USER_AGENT} java [NC,OR]
RewriteCond %{HTTP_USER_AGENT} jigs [NC,OR]
RewriteCond %{HTTP_USER_AGENT} kddi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} keji [NC,OR]
RewriteCond %{HTTP_USER_AGENT} leno [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lg-c [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lg-d [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lg-g [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lge- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} maui [NC,OR]
RewriteCond %{HTTP_USER_AGENT} maxo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} midp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mits [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mmef [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mobi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mot- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} moto [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mwbp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} nec- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} newt [NC,OR]
RewriteCond %{HTTP_USER_AGENT} noki [NC,OR]
RewriteCond %{HTTP_USER_AGENT} opwv [NC,OR]
RewriteCond %{HTTP_USER_AGENT} palm [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pana [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pant [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pdxg [NC,OR]
RewriteCond %{HTTP_USER_AGENT} phil [NC,OR]
RewriteCond %{HTTP_USER_AGENT} play [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pluc [NC,OR]
RewriteCond %{HTTP_USER_AGENT} port [NC,OR]
RewriteCond %{HTTP_USER_AGENT} prox [NC,OR]
RewriteCond %{HTTP_USER_AGENT} qtek [NC,OR]
RewriteCond %{HTTP_USER_AGENT} qwap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sage [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sams [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sany [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sch- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sec- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} send [NC,OR]
RewriteCond %{HTTP_USER_AGENT} seri [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sgh- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} shar [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sie- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} siem [NC,OR]
RewriteCond %{HTTP_USER_AGENT} smal [NC,OR]
RewriteCond %{HTTP_USER_AGENT} smar [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sony [NC,OR]
RewriteCond %{HTTP_USER_AGENT} sph- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} symb [NC,OR]
RewriteCond %{HTTP_USER_AGENT} t-mo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} teli [NC,OR]
RewriteCond %{HTTP_USER_AGENT} tim- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} tosh [NC,OR]
RewriteCond %{HTTP_USER_AGENT} tsm- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} upg1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} upsi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} vk-v [NC,OR]
RewriteCond %{HTTP_USER_AGENT} voda [NC,OR]
RewriteCond %{HTTP_USER_AGENT} w3cs [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wap- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wapa [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wapi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wapp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wapr [NC,OR]
RewriteCond %{HTTP_USER_AGENT} webc [NC,OR]
RewriteCond %{HTTP_USER_AGENT} winw [NC,OR]
RewriteCond %{HTTP_USER_AGENT} winw [NC,OR]
RewriteCond %{HTTP_USER_AGENT} xda [NC,OR]
RewriteCond %{HTTP_USER_AGENT} xda- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} up.browser [NC,OR]
RewriteCond %{HTTP_USER_AGENT} up.link [NC,OR]
RewriteCond %{HTTP_USER_AGENT} windows.ce [NC,OR]
RewriteCond %{HTTP_USER_AGENT} iemobile [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mini [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mmp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} symbian [NC,OR]
RewriteCond %{HTTP_USER_AGENT} midp [NC,OR]
RewriteCond %{HTTP_USER_AGENT} wap [NC,OR]
RewriteCond %{HTTP_USER_AGENT} phone [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pocket [NC,OR]
RewriteCond %{HTTP_USER_AGENT} mobile [NC,OR]
RewriteCond %{HTTP_USER_AGENT} android [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Android [NC,OR]
RewriteCond %{HTTP_USER_AGENT} pda [NC,OR]
RewriteCond %{HTTP_USER_AGENT} PPC [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Series60 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Opera.Mini [NC,OR]
RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !ipad [NC]
RewriteCond %{HTTP_USER_AGENT} !iphone [NC]
RewriteCond %{HTTP_USER_AGENT} !iPad [NC]
RewriteCond %{HTTP_USER_AGENT} !iPhone [NC]
RewriteCond %{HTTP_USER_AGENT} !windows.nt [NC]
RewriteCond %{HTTP_USER_AGENT} !bsd [NC]
RewriteCond %{HTTP_USER_AGENT} !x11 [NC]
RewriteCond %{HTTP_USER_AGENT} !unix [NC]
RewriteCond %{HTTP_USER_AGENT} !macos [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
RewriteCond %{HTTP_USER_AGENT} !playstation [NC]
RewriteCond %{HTTP_USER_AGENT} !google [NC]
RewriteCond %{HTTP_USER_AGENT} !yandex [NC]
RewriteCond %{HTTP_USER_AGENT} !bot [NC]
RewriteCond %{HTTP_USER_AGENT} !libwww [NC]
RewriteCond %{HTTP_USER_AGENT} !msn [NC]
RewriteCond %{HTTP_USER_AGENT} !america [NC]
RewriteCond %{HTTP_USER_AGENT} !avant [NC]
RewriteCond %{HTTP_USER_AGENT} !download [NC]
RewriteCond %{HTTP_USER_AGENT} !fdm [NC]
RewriteCond %{HTTP_USER_AGENT} !maui [NC]
RewriteCond %{HTTP_USER_AGENT} !webmoney [NC]
RewriteCond %{HTTP_USER_AGENT} !windows-media-player [NC]
RewriteRule ^$ http://wap.site.ru/ [L,R=302]