Pull to refresh
173.23
Rating
ua-hosting.company
Хостинг-провайдер: серверы в NL до 300 Гбит/с

Скрипт для быстрой оценки состояния Linux систем

ua-hosting.company corporate blog
Обязанность системного администратора — следить за загруженностью системы, за пользователями, создавать резервную копию и бла-бла-бла. Для наиболее повторяющихся задач существуют различные сценарии, которые позволяют сохранить пальцы на руках и сделать постоянно повторяющиеся задачи более простыми. Здесь представлен скрипт, который не стремится автоматизировать задачи типичного системного администратора, но он может быть полезен для тех новичков, желающих получить часть необходимой информации об их системе, сети, пользователях, нагрузке, RAM, владельцах, внутреннем и внешнем IP и т.п.

Сценарий не имеет какого-либо вредоносного содержимого и его можно запустить с помощью обычных учетных записей пользователей. В самом деле рекомендовано запускать скрипт из под юзера с ограниченными правами а не супер-пользователя.

Вы можете свободно использовать, изменять, распространять приведенные ниже фрагменты кода. Скрипт максимально оптимизирован, чтобы выводить только необходимые данные и обращаться только к нужным директориям — ничего лишнего.

Минимальные требования системы


Все, что вам нужно — это рабочая Linux.

Совместимость


В данном случае скрипт совестим со всеми стандартными дистрибутивами Linux. Кроме того, он не требует корневого разрешения для выполнения. Но при установке не из-под root-пользователя понадобится ввести root-пароль.

Безопасность


Для установки и использования не требуется никаких дополнительных пакетов, которые не указаны в данном посте. Нет необходимости обладать правами суперпользователя для запуска. Код был выпущен под Apache License 2.0 и это означает, что вы можете редактировать, изменять и перераспределять его.

Установка скрипта


Чтобы установить скрипт используйте wget команду для загрузки сценария tecmint_monitor.sh. Также нужно будет сделать его исполняемым, установив соответствующие разрешения.
$ wget http://tecmint.com/wp-content/scripts/tecmint_monitor.sh

Получим следующие:
[test@localhost ~]$ wget http://tecmint.com/wp-content/scripts/tecmint_monitor.sh
--2015-12-22 13:52:21--  http://tecmint.com/wp-content/scripts/tecmint_monitor.sh
Resolving tecmint.com... 212.71.234.61
Connecting to tecmint.com|212.71.234.61|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.tecmint.com/wp-content/scripts/tecmint_monitor.sh [following]
--2015-12-22 13:52:21--  http://www.tecmint.com/wp-content/scripts/tecmint_monitor.sh
Resolving www.tecmint.com... 212.71.234.61
Reusing existing connection to tecmint.com:80.
HTTP request sent, awaiting response... 200 OK
Length: 4015 (3.9K) [application/x-sh]
Saving to: `tecmint_monitor.sh'

100%[=============================================>] 4,015       --.-K/s   in 0s      

2015-12-22 13:52:21 (290 MB/s) - `tecmint_monitor.sh' saved [4015/4015]

[test@localhost ~]$ 


Скачали файл без проблем, теперь нужно установить соответствующие разрешение.

Устанавливаем разрешения.
# chmod 755 tecmint_monitor.sh


Настоятельно рекомендуется установить скрипт из-под пользователя с ограниченными правами, а не как суперпользователь. В таком случае будет запрос пароля и необходимо будет установить компоненты в определенных местах.

Для установки скрипта tecmint_monitor.sh, используем -i, как показано ниже.

$ ./tecmint_monitor.sh -i


Получим такой вот запрос пароля:
[test@localhost ~]$ ./tecmint_monitor.sh -i

./tecmint_monitor.sh: line 30: /tmp/scriptname: Permission denied
Password: 


Введите root-пароль. Если все пройдет хорошо вы получите сообщение про успешную установку.
Congratulations! Script Installed, now run monitor Command
[test@localhost ~]$


Более безопасный вариант будет добавление пользователя в sudoers. В таком случаи команда установки будет выглядеть следующим образом.
$ $ sudo ./tecmint_monitor.sh -i


После установки, вы можете запустить сценарий с помощью вызова команды monitor из-под любого пользователя.
$  monitor


Как только команда будет выполнена вы получаете различную информацию о системе:

  • Подключение к Интернету
  • Тип ОС
  • Имя ОС
  • Версия ОС
  • Архитектура
  • Версия ядра
  • Имя хоста
  • Внутренний IP
  • Внешний IP
  • Имя Сервера
  • Авторизированные пользователи
  • Использовано RAM
  • Использовано SWAP
  • Сколько дискового пространства использовано
  • Время работы системы

Проверить установленную версию скрипта можно используя monitor -v.

$ monitor -v


Получите такого рода результат:
tecmint_monitor version 0.1
Designed by Tecmint.com
Released Under Apache 2.0 License
[test@localhost ~]$ 


Вывод


Это готовое решение из коробки, которое не требует специальных навыков или знаний по работе с SSH. Такое решение явно не лучшее для матерых админов, но оно прекрасно подойдет для новичков, только начинающих осваивать работу с сервером. Если вы знаете более оптимальные скрипты для быстрой оценки состояния Linux систем, которые не требуют сверх-знаний и будут полезней, высказывайте свое мнение и оставляйте рекомендации в комментариях. Я, как и другие читатели, будем рады видеть мнение профессиональных администраторов, работающих с системами Linux. Каждый сможет подчеркнуть что-то для себя.

UPD
При установке лучше использовать sudo, с точки зрения безопасности.

Добавление пользователя в sudoers
Добавить пользователя в группу wheel
$ gpasswd -a username wheel

Adding user test to group wheel

отредактировать файл sudoers
$ visudo
$$ Allows people in group wheel to run all commands

$ %wheel ALL=(ALL)       ALL

раскоментировать строку, или согласно синтаксису добавить нашего пользователя
$ username  ALL=(ALL)       ALL


Теперь из под пользователя можно использовать sudo.
Only registered users can participate in poll. Log in, please.
Применяете ли вы сценарии для оценки состояния сервера?
18.75% Да, каждый день. 51
51.1% Очень редко. 139
30.15% Нет, у меня нет сервера. 82
272 users voted. 134 users abstained.
Tags:
Hubs:
Total votes 44: ↑25 and ↓19 +6
Views 22K
Comments Comments 47

Information

Founded
Location
Латвия
Website
ua-hosting.company
Employees
11–30 employees
Registered
Representative
HostingManager