TCP vs UDP
Приведу 7 отличий, которые было бы неплохо знать.
Существует два способа установить соединение перед отправкой данных с одного устройства на другое: с установлением соединения (connection-oriented) и без установления соединения (connectionless). В первом случае создается сквозное соединение между отправителем и получателем перед передачей данных с сохранением порядка передачи пакетов. Во втором случае пакеты передаются между отправителем и получателем без создания какого-либо соединения. Пакеты проходят по разным маршрутам от отправителя к получателю, этот способ ненадежен и не гарантирует доставку пакетов.
https://habr.com/ru/articles/732794/
Приведу 7 отличий, которые было бы неплохо знать.
Существует два способа установить соединение перед отправкой данных с одного устройства на другое: с установлением соединения (connection-oriented) и без установления соединения (connectionless). В первом случае создается сквозное соединение между отправителем и получателем перед передачей данных с сохранением порядка передачи пакетов. Во втором случае пакеты передаются между отправителем и получателем без создания какого-либо соединения. Пакеты проходят по разным маршрутам от отправителя к получателю, этот способ ненадежен и не гарантирует доставку пакетов.
https://habr.com/ru/articles/732794/
👍3
Короткий совет по Linux 💡
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
Если вы хотите очистить пустые каталоги, команда find может упростить эту работу:
$ find . -type d -empty -exec rmdir -v {} +
Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
$ find . -type d -empty -delete
👍3
Как найти количество открытых файлов в Linux
Чтобы узнать количество открытых файлов в Linux, можно воспользоваться следующими командами:
1. Использовать
Эта команда покажет общее количество открытых файлов в системе, где
2. Использовать `/proc/sys/fs/file-nr` для просмотра счетчика открытых файлов:
Этот файл содержит три числа, разделенные табуляцией:
- Первое число — текущее количество открытых файлов.
- Второе число — количество файлов, которые находятся в ожидании.
- Третье число — максимальное количество файлов, которое система может открыть.
3. Подсчитать открытые файлы для определенного процесса:
Если нужно узнать количество открытых файлов конкретного процесса, можно использовать:
Замените
4. Использовать
Замените
Чтобы узнать количество открытых файлов в Linux, можно воспользоваться следующими командами:
1. Использовать
lsof
(List Open Files) для подсчета открытых файлов в системе:
lsof | wc -l
Эта команда покажет общее количество открытых файлов в системе, где
wc -l
подсчитывает количество строк, то есть количество открытых файлов.2. Использовать `/proc/sys/fs/file-nr` для просмотра счетчика открытых файлов:
cat /proc/sys/fs/file-nr
Этот файл содержит три числа, разделенные табуляцией:
- Первое число — текущее количество открытых файлов.
- Второе число — количество файлов, которые находятся в ожидании.
- Третье число — максимальное количество файлов, которое система может открыть.
3. Подсчитать открытые файлы для определенного процесса:
Если нужно узнать количество открытых файлов конкретного процесса, можно использовать:
lsof -p PID | wc -l
Замените
PID
на идентификатор процесса, который вас интересует.4. Использовать
lsof
для подсчета открытых файлов конкретным пользователем:
lsof -u username | wc -l
Замените
username
на имя пользователя, чтобы увидеть количество открытых файлов этим пользователем.👍3❤1
Bash скрипт оповещения по email об остатке дискового пространства менее 10%
#!/bin/bash
used=`df -hl / | awk {'print $4'} | grep "%"`
used=${used/\%/}
if [ $used -gt 90 ];
then
echo "Attention! Available space less than 10%. Used space = $used"% | mail -s "DISK ALERT" <a href="mailto:user@host.com">user@host.com</a>
fi
❤6
💡Полезный набор хоткеев для работы в Bash
Навигация
Редактирование
Bash History
Общие хоткеи
Навигация
Ctrl+A переместить курсор в начало строки
Ctrl+E переместить курсор в конец строки
Ctrl+F переместить курсор на один символ вправо
Ctrl+B переместить курсор на один символ влево
Alt+B / Esc+B переместить курсор влево на одно слово
Редактирование
Ctrl+U удалить все и вернуться в начала строки
Ctrl+K удалить все после курсора
Ctrl+W удалить слово перед курсором
Alt+D удалить слово после курсора
Ctrl+Y вернуть удаленное
Ctrl+D удалить символ под курсором
Ctrl+H аналогично backspace
Alt+T смена позиции текущего слова на предыдущее
Ctrl+T замена местами двух символа перед курсором
Alt+U перевод слова в заглавные после курсора
Alt+L перевод слова в строчные после курсора
Ctrl+_ отмена последнего ввода
Bash History
Ctrl+R режим обратного поиска
Ctrl+P переход к предыдущей команде
Ctrl+N переход к следующей команде
Ctrl+O выполнить найденную команду
Ctrl+G выход из режима поиска
!! выполнить предыдущую команду
!vim выполнить последнюю команду, которая начиналась на vim
!vim:p вывести последнюю команду, которая начиналась на vim
!n запустить n команду из history
Общие хоткеи
Ctrl+C завершить команду
Ctrl+L очистить экран
Ctrl+S приостановить вывод, остановить прокрутку
Ctrl+Q возобновить прокрутку
Ctrl+D закрыть оболочку
Ctrl+Z приостановить процесс
👍1
Шпаргалка по автоматизации задач с помощью
🟢 Cron
1. Формат записи задач в crontab:
2. Примеры:
- Запуск каждый день в 3 утра:
- Каждые 15 минут:
3. Просмотр/редактирование crontab:
4. Логи cron:
- Расположены в
🟢 Таймеры systemd
1. Файлы таймеров:
- Сервис:
- Таймер:
2. Пример
3. Пример
4. Основные команды:
- Включение таймера:
- Запуск таймера:
- Проверка статуса:
cron
и таймеров systemd
🟢 Cron
1. Формат записи задач в crontab:
* * * * * command_to_execute
| | | | |
| | | | +---- День недели (0 - вс, 6 - сб)
| | | +------ Месяц (1 - 12)
| | +-------- День месяца (1 - 31)
| +---------- Час (0 - 23)
+------------ Минуты (0 - 59)
2. Примеры:
- Запуск каждый день в 3 утра:
0 3 * * * /path/to/script.sh
- Каждые 15 минут:
*/15 * * * * /path/to/script.sh
3. Просмотр/редактирование crontab:
crontab -e
4. Логи cron:
- Расположены в
/var/log/syslog
или /var/log/cron
.🟢 Таймеры systemd
1. Файлы таймеров:
- Сервис:
/etc/systemd/system/mytask.service
- Таймер:
/etc/systemd/system/mytask.timer
2. Пример
.service
:
[Unit]
Description=My Task Service
[Service]
ExecStart=/path/to/script.sh
3. Пример
.timer
:
[Unit]
Description=Run My Task Every Day
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
4. Основные команды:
- Включение таймера:
systemctl enable mytask.timer
- Запуск таймера:
systemctl start mytask.timer
- Проверка статуса:
systemctl list-timers
👍2
Команда findmnt
Это простая утилита командной строки, используемая для отображения списка подключенных файловых систем или поиска файловой системы в /etc/fstab, /etc/mtab или /proc/self/ mountinfo.
Для отображения списка подключенных файловых систем, выполните в командной строке следующую команду.
По умолчанию команда findmnt отображает файловые системы в древовидном формате.
Чтобы отобразить информацию в виде обычного списка, используйте параметр -l, как показано ниже
Можно выбрать отображение файловых систем только определенного типа, используя параметр командной строки -t, за которым следует тип файловой системы, такой как XFS или EXT4.
Поиск файловой системы, используя точку монтирования.
Например, следующая команда отображает все файловые системы /etc/fstab, где каталогом точки монтирования является /mnt/external/disk2.
или
Выводим все файловые системы /etc/fstab и преобразовываем теги LABEL = и UUID = в реальные имена устройств, добавьте ключ – –evaluate
Отобразить только точку монтирования, в которой смонтирована файловая система с меткой «/ boot» или «/», используйте следующую команду.
Findmnt также позволяет отслеживать действия по монтированию, размонтированию, перемонтированию и перемещению каталога, например, в /mnt/test.
Если вы хотите больше информации в выводе, используйте ключ –verbose.
Это простая утилита командной строки, используемая для отображения списка подключенных файловых систем или поиска файловой системы в /etc/fstab, /etc/mtab или /proc/self/ mountinfo.
Для отображения списка подключенных файловых систем, выполните в командной строке следующую команду.
По умолчанию команда findmnt отображает файловые системы в древовидном формате.
# findmnt
Чтобы отобразить информацию в виде обычного списка, используйте параметр -l, как показано ниже
# findmnt -l
Можно выбрать отображение файловых систем только определенного типа, используя параметр командной строки -t, за которым следует тип файловой системы, такой как XFS или EXT4.
# findmnt --fstab -t xfs
или # findmnt --fstab -t ext4
Поиск файловой системы, используя точку монтирования.
Например, следующая команда отображает все файловые системы /etc/fstab, где каталогом точки монтирования является /mnt/external/disk2.
# findmnt --fstab /mnt/external/disk2
#this prints bind mounts where /mnt/external/disk2 is a sourceили
# findmnt --fstab --target /mnt/external/disk2
Выводим все файловые системы /etc/fstab и преобразовываем теги LABEL = и UUID = в реальные имена устройств, добавьте ключ – –evaluate
# findmnt --fstab --evaluate
Отобразить только точку монтирования, в которой смонтирована файловая система с меткой «/ boot» или «/», используйте следующую команду.
# findmnt -n --raw --evaluate --output=target LABEL=/boot
или # findmnt -n --raw --evaluate --output=target LABEL=/
Findmnt также позволяет отслеживать действия по монтированию, размонтированию, перемонтированию и перемещению каталога, например, в /mnt/test.
# findmnt --poll --mountpoint /mnt/test
Если вы хотите больше информации в выводе, используйте ключ –verbose.
# findmnt --real --verbose
👍2
Совет для Linux💡
Получайте уведомления, когда ваши команды в терминале завершатся!
Замените
Получайте уведомления, когда ваши команды в терминале завершатся!
$ sudo apt update; notify-send "Обновление завершено" "Обновления получены"
Замените
apt update
на любую команду, выполнение которой займет время. Не забудьте сначала установить inotify-tools
:
$ sudo apt install inotify-tools
👍4
Выводим список установленных пакетов в Linux по дате
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
Порой необходимо узнать когда тот или иной пакет был установлен в операционной системе (например, в целях аудита). В данной статье рассмотрим как вывести список установленных пакетов в Linux, отсортированный по дате установки - давайте разберемся!
https://telegra.ph/Vyvodim-spisok-ustanovlennyh-paketov-v-Linux-po-date-09-10
👍1
Список полезных команд для работы с `telnet`, которые могут помочь при подключении и отладке сетевых служб
### Основные команды
1. Подключение к удаленному хосту:
Пример:
Подключается к хосту
2. Закрытие соединения:
Чтобы завершить сессию, используйте сочетание клавиш:
Затем введите:
3. Отправка текстового запроса после подключения:
Если подключились к порту, например, HTTP-сервера, можно отправить запрос вручную:
Это выполняет запрос к домашней странице на порту 80.
### Встроенные команды
1. help
Показывает список доступных команд
2. open
Открывает новое соединение с указанным хостом:
3. close
Закрывает текущее соединение:
4. display
Показывает текущие параметры подключения:
5. mode
Переключает режим работы
6. send
Отправляет управляющие символы (например,
7. status
Показывает статус текущего соединения:
8. set и unset
Настраивают параметры подключения (например, установка режима эхо):
### Примеры использования
1. Проверка доступности порта:
Чтобы проверить, открыт ли порт на удаленном сервере:
2. Проверка почтового сервера (SMTP):
Подключение к серверу SMTP:
Затем можно вручную ввести SMTP-команды, такие как:
3. Проверка DNS сервера:
Можно подключиться к DNS-серверу и проверить его ответы:
Эти команды помогут вам работать с
### Основные команды
telnet
:1. Подключение к удаленному хосту:
telnet <hostname> <port>
Пример:
telnet example.com 80
Подключается к хосту
example.com
на порту 80 (HTTP).2. Закрытие соединения:
Чтобы завершить сессию, используйте сочетание клавиш:
Ctrl + ] (переход в режим команд)
Затем введите:
quit
3. Отправка текстового запроса после подключения:
Если подключились к порту, например, HTTP-сервера, можно отправить запрос вручную:
GET / HTTP/1.1
Host: example.com
Это выполняет запрос к домашней странице на порту 80.
### Встроенные команды
telnet
(используйте в режиме команд после нажатия `Ctrl + ]`):1. help
Показывает список доступных команд
telnet
:
telnet> help
2. open
Открывает новое соединение с указанным хостом:
telnet> open <hostname> <port>
3. close
Закрывает текущее соединение:
telnet> close
4. display
Показывает текущие параметры подключения:
telnet> display
5. mode
Переключает режим работы
telnet
(например, line
или `character`):
telnet> mode line
6. send
Отправляет управляющие символы (например,
send escape
для отправки escape-секвенции):
telnet> send escape
7. status
Показывает статус текущего соединения:
telnet> status
8. set и unset
Настраивают параметры подключения (например, установка режима эхо):
telnet> set echo
telnet> unset echo
### Примеры использования
telnet
:1. Проверка доступности порта:
Чтобы проверить, открыт ли порт на удаленном сервере:
telnet <hostname> <port>
2. Проверка почтового сервера (SMTP):
Подключение к серверу SMTP:
telnet smtp.example.com 25
Затем можно вручную ввести SMTP-команды, такие как:
EHLO example.com
3. Проверка DNS сервера:
Можно подключиться к DNS-серверу и проверить его ответы:
telnet <dns-server> 53
Эти команды помогут вам работать с
telnet
для отладки, диагностики и проверки сетевых служб.Быстрый совет по Linux 💡
В Linux вы можете сделать файл или каталог недоступным для удаления, используя команду
В Linux вы можете сделать файл или каталог недоступным для удаления, используя команду
chattr
для установки флага неизменности:
$ sudo chattr +i filename.txt
🔥3👍1
Как изменить дату установки пароля пользователя в Active Directory
У учетной записи пользователя в ActiveDirectory есть два атрибута, в которых хранится последнее время смены пароля учетной записи. Это атрибуты pwdLastSet и PasswordLastSet.
Различаются они форматом записи.
https://telegra.ph/Kak-izmenit-datu-ustanovki-parolya-polzovatelya-v-Active-Directory-08-08
У учетной записи пользователя в ActiveDirectory есть два атрибута, в которых хранится последнее время смены пароля учетной записи. Это атрибуты pwdLastSet и PasswordLastSet.
Различаются они форматом записи.
PasswordLastSet
хранит данные в нормальном читабельном виде, а вот в pwdLastSet
дата хранится в виде большого целого числа, которое представляет собой количество 100-наносекундных интервалов, прошедших с 12:00 полуночи, 1 января 1601 года нашей эры в формате UTC (Coordinated Universal Time).https://telegra.ph/Kak-izmenit-datu-ustanovki-parolya-polzovatelya-v-Active-Directory-08-08
👍2
3 довольно неизвестных команды Docker, которые помогут вам в самых различных ситуациях
Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).
https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26
Если вы какое-то время используете Docker, у вас, вероятно, уже есть адаптированный для вас простой и эффективный рабочий процесс, который включает в себя некоторые из ваших любимых команд Docker (если это технически правильные подкоманды).
https://telegra.ph/3-dovolno-neizvestnyh-komandy-Docker-kotorye-pomogut-vam-v-samyh-razlichnyh-situaciyah-09-26
👍2
Таймлайн инцидента и вероятная причина проблемы с резолвом доменных имен в зоне RU (сломался DNSSEC)
https://habr.com/ru/news/790264/
https://habr.com/ru/news/790264/
Хабр
Таймлайн инцидента и вероятная причина проблемы с резолвом доменных имен в зоне RU (сломался DNSSEC)
Профильный эксперт опубликовал таймлайн сетевого инцидента с резолвом доменных имен в зоне RU (сломался DNSSEC). Источники СМИ назвали вероятной причиной этой проблемы «действия администратора зоны,...
👍2
Shell Scripting
Bash (Born Again) - это оболочка Unix и язык командной строки, написанный Брайаном Фоксом. Оболочка Born Again используется большинством операционных систем Unix/Linux в качестве оболочки по умолчанию.
Этот туториал по Shell Script написан для тех, кто хочет изучить основы программирования сценариев оболочки (Shell scripting). В этой серии уроков вы узнаете о скриптах bash, которые будут очень полезны для автоматизации повседневных задач. Он помогает автоматизировать такие задачи, как резервное копирование, очистка диска и т.д.
https://tecadmin.net/tutorial/bash-scripting/
Bash (Born Again) - это оболочка Unix и язык командной строки, написанный Брайаном Фоксом. Оболочка Born Again используется большинством операционных систем Unix/Linux в качестве оболочки по умолчанию.
Этот туториал по Shell Script написан для тех, кто хочет изучить основы программирования сценариев оболочки (Shell scripting). В этой серии уроков вы узнаете о скриптах bash, которые будут очень полезны для автоматизации повседневных задач. Он помогает автоматизировать такие задачи, как резервное копирование, очистка диска и т.д.
https://tecadmin.net/tutorial/bash-scripting/
🔥2❤1