Библиотека Системного Администратора (только книги, мануалы)
По всем вопросам @evgenycarter
РКН clck.ru/3KoJVM
Post #4681
739
This post (sticker, poll or similar) has no web preview. Open in Telegram
КН @i_odmin_book
This post (sticker, poll or similar) has no web preview. Open in Telegram


UPDATE products
SET price = 50500
WHERE id = 1;
UPDATE products
SET price = 78500, quantity = 3
WHERE id = 2;

( команды ) - выполняет команды в отдельной оболочке. Изменение каталога не затронет основной скрипт:( cd /var/log; ls ){ команды; } - группирует команды в текущей оболочке. Пробел после { и ; перед } обязательны:{ cd /var/log; ls; }files=(one.txt two.txt) - создаёт массив. Получить все элементы: "${files[@]}".$(( выражение )) - вычисляет арифметическое выражение:result=$((5 * 3 + 1)) → 16$( команда ) - подставляет вывод команды:user=$(whoami)[ условие ] - проверяет условие с помощью команды test:[ -f /etc/passwd ] - файл существует и является обычным файлом.[[ условие ]] - расширенная проверка Bash; поддерживает, например, сопоставление с шаблоном:[[ $file == *.txt ]]{1..4} - генерирует последовательность. backup_{1..4}.tar.gz разворачивается в четыре имени файлов.${variable} - значение переменной с явно обозначенными границами:"${name}_backup"${filename%.txt}.bak - удаляет суффикс .txt из значения переменной и добавляет .bak. Саму переменную эта запись не меняет.() с {}, а $(...) с $((...)).
#!/bin/bash
# Установки
WEB_SERVER="https://example.com"
BACKUP_DIR="/backup"
TARGET_DIRS="/var/www /etc"
DISK_USAGE_THRESHOLD=90
ADMIN_EMAIL="admin@example.com"
DATE=$(date +"%Y-%m-%d")
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"
# Проверка доступности веб-сервера
echo "Проверка доступности веб-сервера..."
if curl -s --head $WEB_SERVER | grep "200 OK" > /dev/null; then
echo "Веб-сервер доступен."
else
echo "Внимание: Веб-сервер недоступен!" | mail -s "Проблема с веб-сервером" $ADMIN_EMAIL
fi
# Проверка дискового пространства
echo "Проверка дискового пространства..."
DISK_USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $DISK_USAGE -gt $DISK_USAGE_THRESHOLD ]; then
echo "Внимание: Использование дискового пространства превысило $DISK_USAGE_THRESHOLD%!" | mail -s "Проблема с дисковым пространством" $ADMIN_EMAIL
else
echo "Дискового пространства достаточно."
fi
# Создание бэкапа
echo "Создание бэкапа..."
tar -czf $BACKUP_FILE $TARGET_DIRS
if [ $? -eq 0 ]; then
echo "Бэкап успешно создан: $BACKUP_FILE"
else
echo "Ошибка создания бэкапа!" | mail -s "Ошибка создания бэкапа" $ADMIN_EMAIL
fi
# Отправка отчета
echo "Отправка отчета на $ADMIN_EMAIL..."
REPORT="Отчет за $DATE\n\n"
REPORT+="Статус веб-сервера: $(curl -s --head $WEB_SERVER | head -n 1)\n"
REPORT+="Использование дискового пространства: $DISK_USAGE%\n"
REPORT+="Расположение бэкапа: $BACKUP_FILE\n"
echo -e $REPORT | mail -s "Ежедневный отчет системы" $ADMIN_EMAIL
echo "Готово."
curl, чтобы проверить, доступен ли сайт.df и awk проверяется использование диска. Если превышен порог (90%), отправляется уведомление.tar архивирует и сжимает директории, которые указаны в переменной TARGET_DIRS.mail.
chmod +x /path/to/your/script.sh
crontab -e
0 0 * * * /path/to/your/script.sh
# virsh list – показать список запущенных ВМ# virsh list --all – показать список всех машин (в том числе выключенных)# virsh shutdown <vm name> — выключить виртуальную машину# virsh start <vm name> — запустить виртуальную машину# virsh suspend <vm name> — приостановить виртуальную машину# virsh resume <vm name> — запустить приостановленную виртуальную машину# virsh reboot <vm name> — перезапустить виртуальную машину# virsh destroy <vm name> — уничтожить виртуальную машину# virsh undefine <vm name> — удалить машину из списка и удалить все файлы, принадлежащие ей (обычно применяется после выполнения команды virsh destroy).# virsh vcpuinfo <vm name> — информация о процессоре на виртуальной машине # virsh domid <vm name> — получить идентификатор виртуальной машины# virsh domuuid <vm name> — получить UUID виртуальной машины# virsh dominfo <vm name> — получить сведения о виртуальной машине# virsh domstate <vm name> — просмотр состояния виртуальной машины# virsh dumpxml <vm name> — вывести файл конфигурации указанной виртуальной машины в XML форматеifconfig (устаревшая, заменена на ip)
ifconfig eth0
ipifconfig, более мощная утилита для работы с сетевыми интерфейсами.
ip addr
ip link set eth0 up
ip link set eth0 down
ping
ping google.com
netstat (устаревшая, заменена на ss)
netstat -tuln
ss
ss -tuln
traceroute
traceroute google.com
nslookup / dig
nslookup google.com
dig google.com
curl / wget
wget http://example.com/file.zip
curl -I http://example.com
nmap
nmap 192.168.1.1
route
route -n
chmod используется для изменения прав доступа к файлам и директориям в Unix-подобных операционных системах (например, Linux). Права доступа управляются с помощью комбинации разрешений на чтение (read - r), запись (write - w) и выполнение (execute - x) для владельца файла, группы и всех остальных пользователей.chmod [права] [файл]
chmod 755 script.sh
u — владелец (user)g — группа (group)o — другие пользователи (others)a — все пользователи (all)+ — добавить право- — убрать право= — установить конкретные права
chmod u+x script.sh
chmod o-w script.sh
-R (рекурсивно).
chmod -R 700 /path/to/directory
ip a или ip addr — показывает информацию о всех сетевых интерфейсах.ifconfig — старый способ просмотра интерфейсов. В современных системах заменён на ip a.ip link show — информация о сетевых интерфейсах (без IP адресов).ip link set dev eth0 up/down — включить или отключить сетевой интерфейс (заменить eth0 на нужный интерфейс).ip addr add 192.168.1.100/24 dev eth0 — назначить IP-адрес интерфейсу eth0.ip addr del 192.168.1.100/24 dev eth0 — удалить IP-адрес с интерфейса.ip route show — показать таблицу маршрутизации.ip route add default via 192.168.1.1 — установить шлюз по умолчанию (заменить на нужный IP).ip route del default — удалить маршрут по умолчанию.cat /etc/resolv.conf — показать используемые DNS-сервера.nslookup example.com — получить IP-адрес по доменному имени.dig example.com — расширенная диагностика DNS-запросов.ping 192.168.1.1 — отправить ICMP-запрос к узлу (заменить на нужный IP или домен).traceroute example.com — показать маршрут до узла.mtr example.com — комбинированная команда ping и traceroute с обновлением в реальном времени.ss -tuln — показать открытые порты и активные соединения.netstat -tuln — устаревшая, но часто используемая команда для тех же целей.lsof -i :80 — показать процессы, использующие порт 80.iwconfig — информация о беспроводных интерфейсах (для Wi-Fi).nmcli — управление соединениями через NetworkManager.nmtui — текстовый интерфейс для управления сетью через NetworkManager.tcpdump -i eth0 — захват пакетов с интерфейса eth0.curl ifconfig.me — получить внешний IP-адрес.wget http://example.com/file.zip — скачать файл по HTTP/HTTPS.iptables -L — показать правила файрвола.iptables -A INPUT -p tcp --dport 22 -j ACCEPT — разрешить доступ по SSH (порт 22).iptables -D INPUT -p tcp --dport 22 -j ACCEPT — удалить правило.iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80 — перенаправить запросы на порт 8080 к порту 80.telnet, которые могут помочь при подключении и отладке сетевых служб:telnet:
telnet <hostname> <port>
telnet example.com 80
example.com на порту 80 (HTTP).
Ctrl + ] (переход в режим команд)
quit
GET / HTTP/1.1
Host: example.com
telnet (используйте в режиме команд после нажатия Ctrl + ]):telnet:
telnet> help
telnet> open <hostname> <port>
telnet> close
telnet> display
telnet (например, line или character):
telnet> mode line
send escape для отправки escape-секвенции):
telnet> send escape
telnet> status
telnet> set echo
telnet> unset echo
telnet:
telnet <hostname> <port>
telnet smtp.example.com 25
EHLO example.com
telnet <dns-server> 53

# ethtool eth0 - Показать Ethernet статус # ethtool -s eth0 speed 100 duplex full - Принудительная установка режима 100Mbit Full duplex# ethtool -s eth0 autoneg off - Отключить автоопределение# ethtool -p eth1 - Мигать индикатором сетевой карты - если поддерживается# ip link show - Список сетевых интерфейсов в Linux (подобна ifconfig)# ip link set eth0 up - Активировать сетевой интерфейс (или отключить). Аналог "ifconfig eth0 up"# ip addr show - Список всех IP адресов в Linux ( аналог ifconfig)# ip neigh show - Тоже что и arp -a# route -n # Linux или используйте "ip route"# netstat -rn # Linux, BSD и UNIX# route print # Windows# ifconfig eth0 192.168.50.254 netmask 255.255.255.0 # Первый IP адрес# ifconfig eth0:0 192.168.51.254 netmask 255.255.255.0 # Второй IP адрес# ip addr add 192.168.50.254/24 dev eth0 # Эквивалентные команды для ip# ip addr add 192.168.51.254/24 dev eth0 label eth0:1