Пишу из собственного опыта — полезные команды для администрирования сервера через Shell (bash). Уровень интермидиэт. Т.к. всё равно на своем VDS приходится пользоваться панелью ISP Manager для базовых настроек, что для меня намного удобнее.
Но часто приходится колдовать и в консоли. И так, поехали. Пишу на примере ОС Debian 8, но большинство команд универсальны и подойдут в FreeBSD, CentOS, Ubuntu и подобных.
Поиск файлов по времени изменения
Пример — поиск файлов измененных за последние 30 дней:
find . -mtime -30
Поиск с исключением ненужных папок. Пример исключения нескольких директорий (с поиском изменений за 1 сутки). Эту команду можно сохранить в файл .sh и добавить его выполнение ежесуточно в Cron с отправкой на email (настраивается через панель) и защитный механизм мониторинга изменений скриптов на вашем сайте готов:
find ~/www -mtime -1 -type f -not -path «*do/not/search/1*» -not -path «*do/not/search/2*» -print
Исключите постоянно меняющиеся файлы, и в итоге, вы будете вовремя предупреждены, если на ваш сайт решится кто-то напасть.
Поиск подстроки в папке (например, вредоносного кода)
Ррекурсивно, исключая из результата какой-то путь
grep -R «str to find» *|grep -v «path/to/exclude/*»
Только в файлах php (но лучше искать во всех…)
grep -R «str 1 to find» ~/directory/* | grep «str 2 to find» | grep \.php
Полезные команды для мониторинга и просмотра логов
Смотреть хвост файла в режиме live, то есть все новые изменения будут отображаться у вас сразу же на экране. Например, полезно посмотреть, не атакуют ли китайские боты в фоновом режиме ваш SSH канал (фрут-форс подбор пароля)?
tail -f /var/log/auth.log
Если у вас будут каждую пару секунд появляться новые записи о попытке входа, значит надо срочно решить эту проблему. Смотрите мою статью: Как защитить SHH от брут-форса на всех портах.
Вывод только строк файла лога с конкретным ключевым словом (например, просмотр дат удачного входа):
grep «Accepted» /var/log/auth.log
Один комментарий
Для заметки. Еще полезная команда — для очистки текущей папки от ненужных файлов (например, временных), найденных по шаблону:
Внимание, команда rm удалит файлы полностью. Лучше сначала увидеть, какие найденные файлы вернет find, а потом уже передать эти аргументы в команду rm.