Это старая версия документа!
Текущая дата/время $ date
Сменить часовой пояс: необходимо создать символическую ссылку нужного файла (/usr/share/zoneinfo)- /etc/localtime
Это сменить только локальное время, сам часовой пояс хранится в etc/timezone, он не сменился и в системных логах по прежнему был другой пояс, отредактировал этот текстовый файл и все стало норм!
# ln -sf /usr/share/zoneinfo/Asia/Omsk /etc/localtime
# Сменить имя хоста (но нужен ребут видимо) "NewName" >> /etc/hostname && "NewName" >> /etc/hosts (тут надо заменить старое имя) # Либо так, тут вроде без ребута применяется hostnamectl set-hostname "NewName"
Подстановка команд в скрипте может быть в конструкции- $(), в КИ можно использовать кавычки- ``
В последнем случае, символы перевода строки будут удалены, что бы этого избежать, нужно заключить команду в двойные кавычки
$ "`ls -l /dir`"
Системные вызовы SIGSTOP и SIGCONT
kill -s STOP 16102 kill -s CONT 16102
#!/bin/bash # # Скрипт для сбора и вывода информации с хоста, используется в zabbix, UserParameters # Информация разбита на смысловые блоки, блоки на кейсы в свитче, # название нужного блока передается первым аргументом при запуске скрипта # каждый блок соответствует zabbix-ключу, соответствие задано уже в конфиге заббикс агента, # типа- "UserParameter=mykeys.host,/var/tmp/get-info.sh host" - ключ для получения имени хоста # case $1 in 'host') # Имя хоста echo '[{"Имя хоста": "' `hostname` '"}]';; 'os') # ОС, дистрибутив и версия ядра # Первый вариант лучше, но у Debian его нет, поэтому есть второй distrib=`cat /etc/system-release 2>/dev/null` if [[ -z $distrib ]]; then distrib=`cat /etc/os-release | grep -Po "PRETTY_NAME=\K.*" | sed -e s/\"//g` fi printf '[{"Дистрибутив": "%s", "Версия ядра": "%s"}]\n' "$distrib" `uname -r`;; 'cpu') # ЦП echo '[{"Модель":"'`lscpu | grep -Po '^Model name:\x20*\K.*'`'' x''`lscpu | grep -Po '^CPU\(s\):\x20*\K.*'`'"}]';; 'mem') # ОЗУ, объем в гб echo '[{"Объем": "' `free -th | grep 'Total:' | awk '{print $2}'` '"}]';; 'devnet') # Сетевые уст-ва # Массив доступных интерфейсов, только имена devs=( $(ip -br l | grep -vE '^lo|^docker0' | awk '{print $1}') ) result='[ ' # Проходим перечень интерфейсов, собираем инфу по каждому for dev in ${devs[@]}; do status=`ip -br a show $dev 2>/dev/null | awk '{print $2}'` # Встречаются какие то абстрактные интерфейсы, по ним нет никакой инфы, такие пропускаем if [[ -z $status || $status == 'DOWN' ]]; then continue fi speed=`cat /sys/class/net/$dev/speed 2>/dev/null` duplex=`cat /sys/class/net/$dev/duplex 2>/dev/null` ips=`ip -br a show $dev 2>/dev/null | grep -Eo '([0-9]{0,3}\.){3}[0-9]{0,3}/([0-9]{0,3})' 2>/dev/null` label=`cat /sys/class/net/$dev/device/label 2>dev/null` result+='{"Наименование": "'$dev'", "Модель": "'$label'", "Скорость": "'$speed'", "Поддержка duplex": "'$duplex'", "Статус": "'$status'", "IP-адреса": "'$ips'"},' done echo ${result::-1}']';; 'devstor') # Устройства хранения, со своими разделами res="`lsblk -Jo MODEL,SERIAL,SIZE,TYPE,TRAN | grep -E '"type":"disk"|"type": "disk"' | sed s/'model'/'Модель'/g | sed s/'serial'/'Серийный номер'/g | sed s/'size'/'Размер'/g | sed s/'tran'/'Тип'/g | sed -e s/'"type":"disk"\,'//g$ echo '['${res::-1}']';; 'location') # Расположение, исходя из IP адреса var=`curl -s ipinfo.io | grep -E 'country|region|city' | sed s/'city'/'Город'/g | sed s/'region'/'Регион'/g | sed s/'country'/'Страна'/g` echo '[{'${var::-1}'}]' esac