Как скопировать структуру директорий в Linux
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
Переходим туда
И используя xargs читаем из файла пути и создаем по ним структуру директорий
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
# cd /dir1
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
# find . -type d > dirs.txt
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
# mv ./dirs.txt /dir2
Переходим туда
# cd /dir2
И используя xargs читаем из файла пути и создаем по ним структуру директорий
# xargs mkdir -p < dirs.txt
👍1
Lexicon - утилита для управление записями DNS на различных DNS-провайдерах.
Используя её, вы можете организовать централизованное управление записями на неймсерверах провайдеров, используя их API, без необходимости ручных правок в панелях.
Поддерживает большой список популярных сервисов Cloudflare, Cloudns, Yandexcloud и т.д.
https://github.com/AnalogJ/lexicon
Используя её, вы можете организовать централизованное управление записями на неймсерверах провайдеров, используя их API, без необходимости ручных правок в панелях.
Поддерживает большой список популярных сервисов Cloudflare, Cloudns, Yandexcloud и т.д.
https://github.com/AnalogJ/lexicon
👍2❤1
Как удалить файл с именем -rf?
Удаление файла с именем
1. Использовать путь к файлу
Укажите полный или относительный путь к файлу, используя
Это укажет командной строке, что
2. Использовать параметр `--`
Параметр
Оба этих метода помогут удалить файл с именем
Удаление файла с именем
-rf
в UNIX/Linux может быть немного сложным, потому что -rf
может быть воспринято как опция команды rm
. Чтобы удалить файл с таким именем, можно использовать один из следующих способов:1. Использовать путь к файлу
Укажите полный или относительный путь к файлу, используя
./
перед именем файла:
rm ./-rf
Это укажет командной строке, что
-rf
— это имя файла, а не параметр.2. Использовать параметр `--`
Параметр
--
сообщает команде rm
, что все последующие аргументы следует трактовать как имена файлов, даже если они начинаются с -
.
rm -- -rf
Оба этих метода помогут удалить файл с именем
-rf
безопасно.❤1
Бэкап и очистка журналов Event Log в Windows, размер которых превышает определённое значение
Такой скрипт проверит размер файлов журнала (Event Log) и если обнаружит, что размер одного из них превышает указанное значение, то создаст его резервную копию, а затем очистит журнал.
Такой скрипт проверит размер файлов журнала (Event Log) и если обнаружит, что размер одного из них превышает указанное значение, то создаст его резервную копию, а затем очистит журнал.
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate, (Backup, Security)}!\\" _
& strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile")
For Each objLogfile in colLogFiles
If objLogFile.FileSize > 100000 Then
strBackupLog = objLogFile.BackupEventLog _
("c:\scripts\" & objLogFile.LogFileName & ".evt")
objLogFile.ClearEventLog()
End If
Next
❤3
MySQL
Auto insert with TimeStamp
Copy Database
Create User
--all DB
Delete User
Change Password
--root
CSV Import / Export
Tips
--Create table with same type. data is null.
Export to CSV
Auto insert with TimeStamp
CREATE TABLE test (
id INTEGER,
txt VARCHAR(20),
ts1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ts2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Copy Database
mysqldump -u root -p db1 > dump.sql
mysqladmin -u root -p create db2
mysql -u root -p db2 < dump.sql
Create User
mysql> grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD';
mysql> grant all privileges on DBNAME.* to USERNAME@"%" identified by 'PASSWORD';
mysql> flush privileges;
--all DB
mysql> grant all privileges on *.* to USERNAME@localhost identified by 'PASSWORD';
mysql> grant all privileges on *.* to USERNAME@"%" identified by 'PASSWORD';
mysql> flush privileges;
Delete User
mysql> drop user USERNAME;
or
mysql> delete from mysql.user where user = 'USERNAME';
Change Password
--User
mysql> set password for USER@"%" = password('PASSWORD');
mysql> set password for USER@localhost = password('PASSWORD');
--root
mysql> set password for root=password('PASSWORD');
mysql> set password for root@localhost=password('PASSWORD');
CSV Import / Export
ERROR 1045 (28000) at line 1: Access denied for user 'USER'@'localhost' (using password: YES)
mysql> grant file on *.* to USER@localhost;
Tips
--Create table as same data and type
mysql> create table newtable as select * from orgtable;
--Create table with same type. data is null.
mysql> create table newtable as select * from orgtable where id is null;
Export to CSV
# mysql -uUSER -pPASS DATABASE -e "select * from TABLE;" | sed -e 's/^/"/g' | sed -e 's/$/"/g' | sed -e 's/\t/","/g' > /tmp/test.csv
❤1
Эффективный разбор лог-файлов Linux!
15 примеров, которые администраторы Linux могут использовать ежедневно 👇.
1/ Поиск определенного текста в файле журнала:
Эта команда ищет слово "error" в файле syslog.
2/ Подсчитайте вхождения определенного шаблона:
Эта команда подсчитывает вхождения слова "error" в файл syslog.
3/ Отфильтруйте журналы по диапазону дат:
Эта команда фильтрует записи syslog за 1 апреля.
4/ Просматривайте журналы в режиме реального времени:
Эта команда позволяет следить за файлом syslog в режиме реального времени.
5/ Найдите наиболее часто встречающиеся ошибки:
Эта команда подсчитывает и сортирует наиболее частые сообщения об ошибках.
6/ Выполните поиск в нескольких файлах журнала одновременно:
Эта команда ищет "error" в журналах ошибок syslog и Nginx.
7/ Извлеките определенные поля из записей журнала:
Эта команда извлекает и выводит определенные поля из записей журнала доступа Nginx.
8/ Поиск IP-адресов:
Эта команда извлекает IP-адреса из записей журнала доступа Nginx.
9/ Определите основные шаблоны доступа:
Эта команда определяет наиболее часто используемые URL-адреса в журналах доступа Nginx.
10/ Поиск определенных кодов состояния HTTP:
Эта команда ищет ошибки HTTP 404 в журналах доступа Nginx.
11/ Определите основных потребителей трафика:
Эта команда определяет URL-адреса с наибольшим потреблением трафика в журналах доступа Nginx.
12/ Фильтруйте журналы по IP-адресу источника:
Эта команда фильтрует журналы аутентификации по определенному IP-адресу.
13/ Поиск неудачных попыток входа в систему:
Эта команда ищет неудачные попытки входа в систему SSH в журналах auth.
14/ Проверьте время запуска и выключения системы:
Эта команда извлекает события запуска и выключения системы из syslog.
15/ Найдите процессы, потребляющие большое количество CPU:
Эта команда помогает выявить процессы, вызывающие повышенное потребление ЦП, в системных журналах.
15 примеров, которые администраторы Linux могут использовать ежедневно 👇.
1/ Поиск определенного текста в файле журнала:
grep "error" /var/log/syslog
Эта команда ищет слово "error" в файле syslog.
2/ Подсчитайте вхождения определенного шаблона:
grep -c "error" /var/log/syslog
Эта команда подсчитывает вхождения слова "error" в файл syslog.
3/ Отфильтруйте журналы по диапазону дат:
grep "Apr 1" /var/log/syslog
Эта команда фильтрует записи syslog за 1 апреля.
4/ Просматривайте журналы в режиме реального времени:
tail -f /var/log/syslog
Эта команда позволяет следить за файлом syslog в режиме реального времени.
5/ Найдите наиболее часто встречающиеся ошибки:
grep "error" /var/log/syslog | sort | uniq -c | sort -nr
Эта команда подсчитывает и сортирует наиболее частые сообщения об ошибках.
6/ Выполните поиск в нескольких файлах журнала одновременно:
grep "error" /var/log/syslog /var/log/nginx/error.log
Эта команда ищет "error" в журналах ошибок syslog и Nginx.
7/ Извлеките определенные поля из записей журнала:
awk '{print $4, $6}' /var/log/nginx/access.log
Эта команда извлекает и выводит определенные поля из записей журнала доступа Nginx.
8/ Поиск IP-адресов:
grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" /var/log/nginx/access.log
Эта команда извлекает IP-адреса из записей журнала доступа Nginx.
9/ Определите основные шаблоны доступа:
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
Эта команда определяет наиболее часто используемые URL-адреса в журналах доступа Nginx.
10/ Поиск определенных кодов состояния HTTP:
grep "404" /var/log/nginx/access.log
Эта команда ищет ошибки HTTP 404 в журналах доступа Nginx.
11/ Определите основных потребителей трафика:
awk '{print $10, $7}' /var/log/nginx/access.log | sort -rh | head
Эта команда определяет URL-адреса с наибольшим потреблением трафика в журналах доступа Nginx.
12/ Фильтруйте журналы по IP-адресу источника:
grep "192.168.1.100" /var/log/auth.log
Эта команда фильтрует журналы аутентификации по определенному IP-адресу.
13/ Поиск неудачных попыток входа в систему:
grep "Failed password" /var/log/auth.log
Эта команда ищет неудачные попытки входа в систему SSH в журналах auth.
14/ Проверьте время запуска и выключения системы:
grep "systemd" /var/log/syslog | grep "Starting" | grep "Stopping"
Эта команда извлекает события запуска и выключения системы из syslog.
15/ Найдите процессы, потребляющие большое количество CPU:
grep "CPU" /var/log/syslog
Эта команда помогает выявить процессы, вызывающие повышенное потребление ЦП, в системных журналах.
❤1
Типы файлов Linux
В GNU/Linux как и других Unix-подобных операционных системах понятие типа файла не связано с расширением файла (несколькими буквами после точки в конце имени), как это обстоит в Windows.
https://telegra.ph/Tipy-fajlov-Linux-04-20
В GNU/Linux как и других Unix-подобных операционных системах понятие типа файла не связано с расширением файла (несколькими буквами после точки в конце имени), как это обстоит в Windows.
https://telegra.ph/Tipy-fajlov-Linux-04-20
❤1
Памятка/шпаргалка по SQL
Изучение настоящей шпаргалки не сделает вас мастером SQL, но позволит получить общее представление об этом языке программирования и возможностях, которые он предоставляет. Рассматриваемые в шпаргалке возможности являются общими для всех или большинства диалектов SQL.
https://habr.com/ru/articles/564390/
Изучение настоящей шпаргалки не сделает вас мастером SQL, но позволит получить общее представление об этом языке программирования и возможностях, которые он предоставляет. Рассматриваемые в шпаргалке возможности являются общими для всех или большинства диалектов SQL.
https://habr.com/ru/articles/564390/
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Удаление строк, соответствующих шаблону, в Vim
•
•
https://vimtricks.com/p/remove-lines-matching-a-pattern-in-vim/
•
:g/pattern/d
— удалить строки, соответствующие шаблону•
:g!/pattern/d
— удалить строки, не соответствующие шаблонуhttps://vimtricks.com/p/remove-lines-matching-a-pattern-in-vim/
❤2
SID
Идентификатор безопасности security identifier (SID) в Windows (а также в Active Directory) — это уникальное значение для каждого объекта, которое используется для его однозначной идентификации. Вместо имён пользователей и компьютеров в правилах доступа используется SID. Он состоит из базовой части и добавочной. Базовая обозначает основной объект (ПК или домен), добавочная подобъекты в нём (пользователи и группы домена). Пример:
SID всегда уникален и не может совпадать с SID другого объекта как на локальном ПК так и с SID'ами других ПК и пользователей, в том числе доменных.
Получить информацию о SID можно с помощью команд Инструментария Управления Windows, WMIC (Windows Management Instrumentation Command).
SID пользователей (в этот список попадают не только локальные пользователи, но и доменные - все с кем данный компьютер имел дело):
SID групп:
Идентификатор безопасности security identifier (SID) в Windows (а также в Active Directory) — это уникальное значение для каждого объекта, которое используется для его однозначной идентификации. Вместо имён пользователей и компьютеров в правилах доступа используется SID. Он состоит из базовой части и добавочной. Базовая обозначает основной объект (ПК или домен), добавочная подобъекты в нём (пользователи и группы домена). Пример:
S-1-5-21-705789055-1138749243-1717242729-1108
SID всегда уникален и не может совпадать с SID другого объекта как на локальном ПК так и с SID'ами других ПК и пользователей, в том числе доменных.
Получить информацию о SID можно с помощью команд Инструментария Управления Windows, WMIC (Windows Management Instrumentation Command).
SID пользователей (в этот список попадают не только локальные пользователи, но и доменные - все с кем данный компьютер имел дело):
wmic useraccount get name, sid
SID групп:
wmic group get name, sid
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Зажигаем огонь в терминале с помощью команды:
Как установить libaa-bin в Ubuntu / Debian
Примеры программ с использованием aalib
http://aa-project.sourceforge.net/aalib/
aafire
Как установить libaa-bin в Ubuntu / Debian
sudo apt update
sudo apt install libaa-bin
Примеры программ с использованием aalib
http://aa-project.sourceforge.net/aalib/
❤1
Примеры скриптов PowerShell для системного администрирования
Управление текущим расположением
Работа с файлами и папками
Работа с файлами, папками и разделами реестра
Работа с записями реестра
https://bookflow.ru/primery-skriptov-powershell-dlya-sistemnogo-administrirovaniya/
Управление текущим расположением
Работа с файлами и папками
Работа с файлами, папками и разделами реестра
Работа с записями реестра
https://bookflow.ru/primery-skriptov-powershell-dlya-sistemnogo-administrirovaniya/
❤1👍1
Пример Bash-скрипта, который выполняет следующие задачи
1. Проверяет доступность важного веб-сервера.
2. Проверяет использование дискового пространства.
3. Делает бэкап указанных директорий.
4. Отправляет отчет на электронную почту администратора.
Пример скрипта:
Описание:
1. Проверка веб-сервера: Используется команда
2. Проверка дискового пространства: С помощью
3. Создание бэкапа: Команда
4. Отправка отчета: Отчет по всем операциям отправляется на почту администратора с помощью
Как использовать:
1. Задайте нужные параметры, такие как адрес веб-сервера, директории для бэкапа, порог использования диска и email.
2. Сделайте скрипт исполняемым:
3. Добавьте скрипт в cron для выполнения на регулярной основе:
Пример для выполнения каждый день в 00:00:
1. Проверяет доступность важного веб-сервера.
2. Проверяет использование дискового пространства.
3. Делает бэкап указанных директорий.
4. Отправляет отчет на электронную почту администратора.
Пример скрипта:
#!/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 "Готово."
Описание:
1. Проверка веб-сервера: Используется команда
curl
, чтобы проверить, доступен ли сайт.2. Проверка дискового пространства: С помощью
df
и awk
проверяется использование диска. Если превышен порог (90%), отправляется уведомление.3. Создание бэкапа: Команда
tar
архивирует и сжимает директории, которые указаны в переменной TARGET_DIRS
.4. Отправка отчета: Отчет по всем операциям отправляется на почту администратора с помощью
mail
.Как использовать:
1. Задайте нужные параметры, такие как адрес веб-сервера, директории для бэкапа, порог использования диска и email.
2. Сделайте скрипт исполняемым:
chmod +x /path/to/your/script.sh
3. Добавьте скрипт в cron для выполнения на регулярной основе:
crontab -e
Пример для выполнения каждый день в 00:00:
0 0 * * * /path/to/your/script.sh
❤1