Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
411 - Telegram Web
Telegram Web
Bash. Проверки файлов
Kоманды позволяют проверять различные условия, касающиеся файлов

-d file # Проверяет, существует ли файл, и является ли он директорией.
-e file # Проверяет, существует ли файл.
-f file # Проверяет, существует ли файл, и является ли он файлом.
-r file # Проверяет, существует ли файл, и доступен ли он для чтения.
-s file # Проверяет, существует ли файл, и не является ли он пустым.
-w file # Проверяет, существует ли файл, и доступен ли он для записи.
-x file # Проверяет, существует ли файл, и является ли он исполняемым.
file1 -nt file2 # Проверяет, новее ли file1, чем file2.
file1 -ot file2 # Проверяет, старше ли file1, чем file2.
-O file # Проверяет, существует ли файл, и является ли его владельцем текущий пользователь.
-G file # Проверяет, существует ли файл, и соответствует ли его идентификатор группы идентификатору группы текущего пользователя.

#!/bin/bash

mydir=/home/likegeeks

if [ -d $mydir ] # если файл сущетсвует и он является директорией
then
echo "The $mydir directory exists" # выводим сообщение
cd $mydir # переходим в него
ls # отображаем содержимое
else # ИНАЧЕ
echo "The $mydir directory does not exist"
fi
1👍1
Haskell Dockerfile Linter

Интеллектуальный распаковщик Dockerfile, помогающий создавать лучшие образы Docker. Линтер разбирает Docker-файл на AST и выполняет правила поверх AST. Он опирается на поддержку ShellCheck для проверки Bash-кода внутри инструкций RUN.

https://github.com/hadolint/hadolint
1
Утилита для бэкапов Borgbackup

Дедуплицирующий архиватор с сжатием и защищенным шифрованием.

BorgBackup дает вам:
Экономия места при хранении резервных копий.
Безопасное, аутентифицированное шифрование.
Сжатие: lz4, zstd, zlib, lzma или без него.
Возможность монтирования резервных копий с помощью FUSE.
Простая установка на различных платформах: Linux, macOS, BSD, ...
Свободное программное обеспечение (лицензия BSD).
Поддерживается большим и активным сообществом разработчиков с открытым исходным кодом.

GitHub https://github.com/borgbackup/borg

Demo https://www.borgbackup.org/demo.html
🔥21👍1
Как быстро очистить лог-файлы, не перезапуская сервис

Привет, коллеги! Сегодня хочу показать простой, но очень полезный приём для работы с логами. Иногда лог-файлы разрастаются до гигантских размеров, и хочется их обнулить — но без остановки сервиса, который пишет в этот файл.

Вот как это сделать:


: > /var/log/your-log.log


Или, альтернативно:


truncate -s 0 /var/log/your-log.log


📌 Что здесь происходит:

- : > — это no-op команда (:) с перенаправлением вывода в файл, по сути затирает его.
- truncate -s 0 — устанавливает размер файла в 0 байт.

Главное: не удаляйте лог-файл напрямую!
Если вы сделаете rm /var/log/your-log.log, то большинство демонов продолжат писать в уже открытый файловый дескриптор — и вы потеряете лог, не освободив место.

Если лог-файл всё-таки нужно удалить — сделайте это аккуратно:


> /var/log/your-log.log && systemctl reload your-service
2
Шпаргалка по работе с Tmux (терминальный мультиплексор)

1. Установка

CentOS (нужен подключенный репо EPEL)
# yum install tmux
Fedora
# dnf install tmux
Ubuntu/Debian
# apt-get install tmux


2. Конфигурационные файлы

(пользователя, системный):
~/.tmux.conf
/etc/tmux.conf


До версии 2.1
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on
set -g mode-mouse on



3. Работа с Tmux

Старт
# tmux //без параметров будет создана сессия 0
# tmux new -s session1 //новая сессия session1. Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой.

Префикс (с него начинаются команды)
<C-b> (CTRL + b)

Новое окно (нажать CTRL+b, затем нажать с)
<C-b c>

Список окон
<C-b w> // переключиться курсором вверх-вниз

Переключение
<C-b n> // следующее окно
<C-b p> // предыдущее окно
<C-b 0> // переключиться на номер окна

Окна можно делить на панели (Panes)
Как в тайловых (мозаичных) оконных менеджерах.

Деление окна горизонтально
<C-b ">
либо команда
# tmux split-window -h

Деление окна вертикально
<C-b %>
либо команда
# tmux split-window -v

Переход между панелей
<C-b стрелки курсора> // либо режим мыши

Изменение размеров панелей
<C-b c-стрелки> // либо режим мыши

Закрытие окон
<C-b x> // нужно подтвердить y
либо
# exit

Отключение от сессии
<C-b d>
либо
# tmux detach

Список сессий
# tmux ls

Подключиться к работающей сессии
# tmux attach //подключение к сессии, либо к единственной, либо последней созданной
# tmux attach -t session1 // подключение к сессии session1

Выбрать сессию
<C-b s>

Завершение сессии
# tmux kill-session -t session1

Завершить все сессии
# tmux kill-server

Список поддерживаемых комманд
# tmux list-commands

Дополнительная информация
# man tmux
2
Шпаргалка по Nmap
👍31👎1
Команды для получения сведений об оборудовании


Некоторые сведения об оборудовании можно получить из файлов каталога /proc:

cat /proc/devices - информация о типах устройств.

cat /proc/diskstats - информация о дисковых устройствах.

cat /proc/dma - информация о режиме работы контроллера прямого доступа к памяти.

cat /proc/iomem - информация об адресах, используемых контроллерами ввода-вывода.

cat /proc/ioports - информация о портах ввода-вывода.

cat /proc/meminfo - информация об оперативной памяти.

cat /proc/cpuinfo - информация о процессорах..

lshw - отобразить полную информацию об оборудовании в текстовом формате.

lshw -c storage - отобразить информацию об устройствах хранения данных ( класса ”storage” )

lscpu - отобразить информацию о процессоре

lscpu | grep L2 - получить размер кэш второго уровня процессора.

lscpu | grep Arch - получить информацию об архитектуре процессора.

lspci - отобразить сведения об оборудовании на шине PCI

lsusb- отобразить сведения об оборудовании на шине USB

dmidecode отобразить версию программы, общую информация базы DMI, и расшифрованное содержимое отдельных записей.

dmidecode -t bios - сведения о BIOS

dmidecode -t system - сведения о переключателях системной платы.

dmidecode -t baseboard - сведения о материнской плате.

dmidecode -t chassis - сведения о переключателях и датчиках шасси.

dmidecode -t processor - сведения о центральном процессоре ( о процессорах для многопроцессорных систем ) .

dmidecode -t memory - сведения об оперативной памяти.

dmidecode -t cache - сведения о кэш-памяти.

dmidecode -t connector - сведения о разъемах контроллеров периферийных устройств.

dmidecode -t slot - сведения о разъемах PCI/PCI-Express
4
Шпаргалка по Linux
👍1
Команда less

Команда less позволяет задействовать одноименную утилиту, предназначенную для постраничного вывода содержимого текстовых файлов значительного объема. Она похожа на команду more, но имеет больше функций, которые, тем не менее, могут потребоваться далеко не всем пользователям. Утилита особенно удобна для быстрого открытия текстовых файлов, так как не загружает их содержимое полностью.

Базовый синтаксис команды выглядит следующим образом:
$ less [параметры] имя-текстового-файла

Команда и назначение

Клавиша со стрелкой вниз, Enter, e, j Перемещение на одну строку к концу файла
Клавиша со стрелкой вверх, y, k Перемещение на одну строку к началу файла
Пробел, f Перемещение на одну страницу к концу файла
b Перемещение на одну страницу к началу файла
/текст Поиск текста по направлению к концу файла
?текст Поиск текста по направлению к началу файла
n Повторение предыдущего поиска
N Повторение предыдущего поиска в обратном направлении
Home, g Переход к первой строке файла
Ng Переход к строке файла номер N
End, G Переход к последней строке файла
Home, p Переход к началу файла
Np Переход к позиции файла в N процентов
q Завершение работы утилиты
h Вывод информации о доступных командах
1
Nginxpwner - это простой инструмент для поиска распространенных неправильных конфигураций и уязвимостей Nginx.


Install:
cd /opt
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
chmod +x install.sh
./install.sh


Install using Docker
git clone https://github.com/stark0de/nginxpwner
cd nginxpwner
sudo docker build -t nginxpwner:latest .


Run the image
sudo docker run -it nginxpwner:latest /bin/bash

https://github.com/stark0de/nginxpwner
👍21
Если у вас возникли проблемы с чтением каталогов в переменной $PATH , вы можете использовать команду tr, чтобы заменить двоеточия символами новой строки, чтобы каждый каталог отображался на отдельной строке.

$ echo $PATH | tr ":" "\n"
1
Проверка портов

Проверить порты можно с помощью следующих команд:

nc: Netcat – простая утилита Unix, которая считывает и записывает данные через сетевые соединения, используя протокол TCP или UDP.
nmap: Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей.

telnet: Утилита telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET.
netstat: Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения.

ss: Утилита ss — это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux

lost: Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые.

https://telegra.ph/Proverka-portov-09-17
Выводим список файлов в домашней директории без использования ls или его алиасов


1. dir

dir -aA ~

2. printf

printf "%s\n" ~/* ~/.*

3. echo

echo -e 'echo \t\ty\b\b\b\b\b\b\b' | bash -i
echo -e 'echo \t\ty\b\b\b\b\b\b\b' | sh -i

3. vim

vim ~

4. rm

yes "n" | rm -i $HOME/* $HOME/.* 2>&1|grep -o "$HOME[^']*"
(echo y; yes n) | rm -ir ~ 2>&1 | sed -E -e "s/(rm:[^']+)|\?//g"

5. rsync

rsync --list-only ~/

6. grep

grep -l '.*' ~/* ~/.* 2>/dev/null || grep -L '.*' ~/* ~/.* 2>/dev/null

7. file

file ~/* ~/.*

8. stat

stat ~/* ~/.*|grep "/home"|awk '{print $2}'
stat -c "%A %G:%U %s %x %n" * \.*
stat *|awk '/File:/{print $2}'

9. head

head -n 0 -v ~/* ~/.*|awk '{print $2}'

10. getfacl

getfacl ~/* ~/.* | grep "# file" | awk '{print $3}'

11. git

git init ~/ ; curr=`pwd`; cd ~ ; git status; rm -rf .git; cd $curr ; curr=''

12. cat

cat ~ |strings |xargs -IX sh -c 'test -e X && echo X'

13. lsattr

lsattr ~/* ~/.* 2>&1 | grep -Po '/.*'
2👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Dockly

Это интерактивный терминальный интерфейс для управления контейнерами Docker. Утилита позволяет в режиме реального времени просматривать активные контейнеры, образы и сети, выполнять команды, такие как перезапуск или удаление контейнеров, а также получать доступ к их логам и ресурсам. Подходит для разработчиков и администраторов, которым нужен быстрый и удобный способ мониторинга и управления Docker-средами.

https://github.com/lirantal/dockly
1
Шпаргалка по grep

grep — это мощный инструмент для поиска текста в файлах на основе регулярных выражений.


Основные команды:

1. Поиск строки в файле:

grep "строка" имя_файла

Ищет указанную строку в файле.

2. Поиск в нескольких файлах:

grep "строка" файл1 файл2


3. Поиск рекурсивно:

grep -r "строка" /путь/к/каталогу

Ищет строку во всех файлах указанного каталога.

4. Игнорирование регистра:

grep -i "строка" имя_файла


5. Показать номер строки:

grep -n "строка" имя_файла


6. Вывод строк, не содержащих шаблон:

grep -v "строка" имя_файла


7. Подсветка совпадений:

grep --color "строка" имя_файла


8. Подсчитать количество совпадений:

grep -c "строка" имя_файла



Расширенные команды:

1. Использование регулярных выражений:

grep -E "регулярное_выражение" имя_файла

Или:

egrep "регулярное_выражение" имя_файла


2. Поиск с указанием количества строк до и после совпадения:

grep -A 3 -B 2 "строка" имя_файла

-A (after) и -B (before) указывают количество строк, которые будут выведены до и после найденной строки.

3. Поиск только имени файла:

grep -l "строка" *


4. Инвертированный поиск файлов:

grep -L "строка" *

Показывает файлы, в которых не найдено совпадений.



Полезные опции:

- -w — ищет полные слова.
- -o — выводит только совпавшие строки.
- -q — тихий режим, без вывода в терминал, используется для проверки совпадений.

Примеры:

1. Поиск строки "error" в логах:

grep "error" /var/log/syslog


2. Поиск строк с IP-адресами:

grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' имя_файла


3. Поиск строки и запись результата в файл:

grep "pattern" имя_файла > output.txt
1
2025/07/12 02:45:31
Back to Top
HTML Embed Code: