Авторская информация о системном администрировании.
> Import-Module ntTraceControl
> Write-SecurityEventId4624 -SubjectUserName "SERVERADMIN.RU" -SubjectDomainName "HOMELAB"
Таким образом можно сгенерировать любую необходимую запись в лог файле. Другие примеры есть в репозитории.
Напомню, что виндовые логи умеет собирать тот же Zabbix. Вот пример настройки:
Windows EventLog Monitoring With ZABBIX
⇨ https://www.youtube.com/watch?v=rOBatrWrg2Y
Или Elastic:
Настраиваем сбор логов Windows Server в ELK Stack
⇨ serveradmin.ru/nastrai…lk-stack
#windows #мониторингcurl -O https://site.com/file.tar.gz
wget https://site.com/file.tar.gz
Скачать и сохранить с заданным именем:
curl -o file_new.tar.gz https://site.com/file.tar.gz
wget -O file_new.tar.gz https://site.com/file.tar.gz
Для curl я обычно применяю пару дополнительных ключей:
-s — режим silent, отключает вывод служебной информации, актуально для скриптов;
-k — игнорирует ошибки TLS, например, с недоверенным сертификатом.
И у wget, и у curl есть одинаковая опция по ограничению скорости загрузки через ключ --limit-rate 10M. Суффиксы k, M, G обозначают килобайты, мегабайты, гигабайты.
Скачать скрипт и сразу запустить его 😱:
curl -sSL https://get.docker.com/ | sh
Автоматическая установка докера. Я постоянно пользуюсь.
Для аутентификации в curl достаточно через ключ -u добавить имя пользователя и пароль. Работает как с basic auth, так и с kerberos, ntlm. Для кербероса надо только не забыть домен добавить к имени пользователя.
curl -O -u user:password https://site.com/file.tar.gz
Скачать набор файлов из текстового списка, где каждая строка это отдельная ссылка:
wget –I urls.txt
Если добавить ключ -b, то скачивание будет идти в фоновом режиме. Актуально, когда качаешь по списку набор iso. Это может долго длиться.
Скачать целиком сайт. Работает нормально, сам проверял несколько раз, скачивая некоторые сайты:
wget -r -k -l 7 -p -E -nc http://site.ru/
7 — глубина вложенности страниц от указанной, можно сделать меньше или больше в зависимости от сайта, чтобы не качать уже мусорные ссылки.
Скачать файл с ssh сервера через scp:
curl -O -k -u user scp://192.168.1.1:22/data/file.tar.gz
Запрос пароля появится в консоли. Можно его сразу указать, только имейте ввиду, что пароль останется в history:
curl -O -k -u user:password scp://192.168.1.1:22/data/file.tar.gz
И то же самое, только с ключом:
curl -O -k -u user --key ~/.ssh/id_rsa scp://192.168.1.1:22/data/file.tar.gz
Скачать файл по ftp:
curl -O ftp://user:[email protected]/data/file.tar.gz
Скачать файл по smb:
curl -O -u "domain\user:password" smb://server.local/share/file.tar.gz
Выгрузка (загрузка на сервер) файлов по ftp, ssh, smb:
curl -T file.tar.gz -u user:password ftp://ftpserver.ru/data/
curl -k -T file.tar.gz -u user scp://ftpserver.ru/data/
curl -k -T file.tar.gz -u user --key ~/.ssh/id_rsa scp://ftpserver.ru/data/
curl -T file.tar.gz -u "domain\user:password" smb://server.local/share/
Причём можно сразу загрузить группу файлов с именами, которые можно задать по стандартной маске в bash:
curl -T "file[1-100].tar.gz" ftp://ftpserver.ru/data/
#bash #terminal# lscpu | grep list
On-line CPU(s) list: 0-3
Доступны 4 ядра с 0 по 3. Можно выключить любое количество ядер, кроме нулевого.
Отключим 2 ядра:
# chcpu -d 2,3
CPU 2 disabled
CPU 3 disabled
Проверяем:
# lscpu | grep list
On-line CPU(s) list: 0,1
Off-line CPU(s) list: 2,3
Сейчас если запустить top или htop, то будут видны только 2 процессора. Если сделать тест нагрузки, то явно будет просадка по производительности. Не обязательно пропорциональная уменьшенным ядрам. Всё зависит от программ для тестирования.
Возвращаем ядра на место:
# chcpu -e 2,3
CPU 2 enabled
CPU 3 enabled
Простой и удобный функционал. Мне интересно, а в Windows есть что-то подобное?
#linux #terminal#!/bin/sh
# Zabbix API token
ZTOKEN=204279d9d06bb9c7df0527107bef8e5d75b0f7e823a8dc6
# Get iiko token
ITOKEN=`curl -sk --location -X POST 'https://api-ru.iiko.services/api/1/access_token' \
-H 'Content-Type: application/json' \
--data-raw '{"apiLogin": "n8457fd4"}' | jq -r '.token'`
# Update macros
curl --location -X POST 'https://zb.server.ru/api_jsonrpc.php' \
-H 'Content-Type: application/json' \
--data-raw '{
"jsonrpc": "2.0",
"method": "template.update",
"params": {
"templateid": "10630",
"macros": [
{"macro": "{$TOKEN}","value": "'$ITOKEN'"},
{"macro": "{$ID_ORG}","value": ""},
{"macro": "{$ID_TERM}","value": ""}
]
},
"id": 1,
"auth": "'$ZTOKEN'"
}'
Скрипт положил на Zabbix Server и запускал по CRON. Эту же задачу можно было бы решить более красиво через JavaScript сразу в шаблоне Zabbix. Он поддерживает такую обработку в айтеме. Но я не захотел тратить на это время. Если на bash я сразу понимаю, как сделать, то с JavaScript надо разбираться и отлаживать. Свободно программировать на нём я не умею.
Далее сделал шаблон с айтемами типа HTTP Agent, настроил заголовки аутентификации с макросом, куда записывается токен, и POST запросы на извлечение нужных данных. С помощью предобработки айтемов вычленил нужные мне данные. Использовал несколько шагов:
1. JsonPath для того, чтобы выбрать нужную строку с данными.
2. Обрезал квадратные скобки [ ], которые остаются от json строк.
3. Сделал преобразование значений true и false, которые приходят в ответ на запрос, в 1 и 0 соответственно, чтобы хранить в базе не строковые значения, а числовые.
Затем сделал простые триггеры на основе значения айтема.
Шаблон достаточно прикрепить к хосту, указать макросы {$ID_ORG} и {$ID_TERM}, которые соответствуют ID организации и терминала в системе iikko и мониторинг заработает.
Такая вот нетривиальная задача решается относительно просто с помощью Zabbix. Изначально думал, что придётся привлечь программистов, чтобы реализовать всю эту логику перед передачей данных в Zabbix. Была такая возможность. Но потом чуть повнимательнее посмотрел и понял, что можно всё это через Zabbix сделать практически штатным функционалом.
#zabbix