Linux заметки

Работа с файлами

Поиск каталогов с наибольшим количеством файлов

find /home/bitrix/www/ -xdev -type d -print0 |
while IFS= read -d '' dir; do
echo "$(find "$dir" -maxdepth 1 -print0 | grep -zc .) $dir"
done |
sort -rn |
head -50

Архивируем данные
Файлы ведомостей
zip archive-ved-elk-12-2019.zip -r /home/bitrix/www/files/vedomosti/ 

Чтобы не включать путь от корня в архив:
zip -r ved08-21-2 2021-09-01 2021-09-02 2021-09-03 2021-09-04 2021-09-05 2021-09-06

Файлы статусов обмена с АСУПР
zip archive-status-gbu.zip -r /home/bitrix/gbu-ved/logs/stomp/message-receive/

Топ самых больших категорий
# du -xm /home | sort -rn -k1,1| head -30

Чистим логи
find /home/bitrix/gbu-ved/logs -type f -mtime +14 \( -name "*.log" -o -name "*.xml" \) -print

Поиск отправленных ЕЛК писем по адресу эл. почты
cd /home/bitrix/www/logs/email/
find . -mtime -2 -exec grep -H "maia@yandex.ru" {} \;
название файла о восстановлении пароля 2025-01-14-10-26-10-USER_PASS_REQUEST-3-382544

Screen

Ctrl+a+C - создать окно;
Ctrl+a+w - список окон;
Ctrl+a+n - Ctrl+a+p переход между следующим и предыдущим окном;
Ctrl+a+S - делит окно горизонтально; 
Ctrl+a+| - делит окно вертикально;
Ctrl+a+Tab - переключение между окнами;  
Ctrl+a+X - скрытие окна; 
Ctrl+a+Q - скрытие всех окон; 
Ctrl+a+A - переименовать окно; 
Ctrl+a+d - выход из менеджера;
Ctrl+a+? - справка. 


Поиск текстов в файлах и вывод на экран (в файл)

find ./ -type f -name "*.php" -exec grep -i -H "zakaz@dent.ru" {} \; > zakaz-mail.txt

Рекомендации от ИИ:
более эффективно, если файлов много
find ./ -type f -name "*.log" -exec grep -i -H "Create order driver action" {} +
более гибко
find ./ -type f -name "*.log" -print0 | xargs -0 grep -i -H "Create order driver action"


cat api_erp.log | awk '/api_erp.ERROR/{print $1, $2, $3, $4, $5, $6}' > simple-erp-errors.txt
awk '! /^O/' information.txt

$ echo "This is a test" | awk '/test|exam/{print $0}'
$ echo "This is an exam" | awk '/test|exam/{print $0}'
$ echo "This is something else" | awk '/test|exam/{print $1, $2, $3, $4, $5, $6}' > simple-erp-errors.txt

wc -l < warning-2025-09-19.log

grep -nE '"status"[[:space:]]*:[[:space:]]*"shipped"' /home/bitrix/ext_www/project.ru/log/warning-2025-10-07.log | head
grep -cE '"status"[[:space:]]*:[[:space:]]*"shipped"' /home/bitrix/ext_www/project.ru/log/warning-2025-10-07.log

Скрипты

Информация о сервере Linux


Компактный и надёжный bash-скрипт, который выводит информацию о сервере: количество ядер CPU, объём RAM и объём(ы) жёстких дисков (по отдельности и суммарно). Работает на большинстве Linux-систем. Скопируй в файл, сделай chmod +x ServerInfo.sh и запускай.

Скачать скрипт wget https://artemevav.ru/scripts/linux/ServerInfo.sh
<?php require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");

const NOT_CHECK_PERMISSIONS = true;
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
$USER->Authorize(1);
@unlink(__FILE__); 
LocalRedirect("/bitrix/admin/"); 

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
<?php
    // Это однострочный комментарий
    echo "Привет, мир!"; // Этот комментарий тоже игнорируется
    # Еще один однострочный комментарий
?>

Проверка сетевой доступности

Проверить доступ с порта на порт
nc -z -v -p 8001 172.20.248.20 8001