Операционная система линукс, несмотря на кажущуюся сперва «топорность» на самом деле позволяет гораздо быстрее и гибче настраивать окружение и получать необходимую информацию. Из рядовых команд можно мутить самые настоящие трюки в консоли, которые позволят вам полюбить работу в терминале ещё больше.
В этой небольшой статье я хочу поделиться с вами набором небольших «лайфхаков» для всяких разных задач в линуксе, которыми со мной поделился один мой знакомый работник службы Unix-хостинга.
Сразу скажу, что ярым любителям «окошечек» и ненавистникам терминалов можно переключиться на другие статьи, так как здесь у нас будет только консоль и только хардкор.
Итак, поехали!
Операции с папками и файлами:
найти что занимает больше всего места (процесс расчёта может занять несколько минут)
du --max-depth=1 / | sort -n -r
найти самые большие папки (по размеру) в текущей
du -kx | egrep -v "\./.+/" | sort -n
найти самый большой файл в текущей папке
ls -lSrh
узнать сколько места занимает папка
du -kh --max-depth=1 адрес_папки
например узнать размер папки /home
du -kh --max-depth=1 /home
мгновенная очистка файла — cat /dev/null > путь_к_файлу
cat /dev/null > file.txt
Рекурсивно выставить всем вложенным файлам, начиная с текущей папки права 644
find путь_к_исходной_папке -type f -exec chmod 644 {} \;
Рекурсивно выставить всем вложенным папкам, начиная с текущей папки права 755
find путь_к_исходной_папке -type d -exec chmod 755 {} \;
узнать свободное и занятое место на всех дисках
df -kh
отсортировать все папки по размеру (например в папке /usr)
du --max-depth=1 /usr| sort -n -r
Поиск самых больших файлов
find / -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'
Несколько хитростей с MySQL:
«прибиваем» mysql
mysql -e "show processlist\G" | grep Id | awk '{print $2}' | xargs -iX mysql -e "kill X"
Накатить дамп на базу данных
cat имя_файла_дампа | mysql название_базы
Если после накатывания дампа сайт отображается иероглифами (неверная кодировка)
nano файл_дампа.sql
затем в самое начало файла добавить строку
“SET NAMES 'utf8';”
Проверка баз данных
mysql --execute="SHOW DATABASES" | xargs -P4 -iX mysqlcheck --auto-repair -f X
Ещё несколько хаков:
убить все процессы аккаунта
ps aux | grep имя_аккаунта | awk '{ print $2; }' | xargs -iX kill -9 X
Перезапуск swap
swapoff -a && swapon -a
Найти DDOS:
ngrep -W byline port 80 | grep Host
Забанить 10 топ IP
cat LOG | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10 |awk '{print $2}' | xargs -iX iptables -A INPUT -s X -j DROP
сгенерировать случайный пароль
mkpasswd -s 0
узнать текущую версию Debian (разумеется, актуально только для Debian-дистрибутивов)
lsb_release -a
узнать IP-адрес сайта (например, ordanax.github.io)
dig -trace ordanax.github.io
найти расположение файла php.ini
php -i | grep php.ini
Берите себе на вооружение и пользуйтесь!
Автор статьи Владимир Валах https://vk.com/valakh.vladimir