🗑️ Автоочистка устаревших DNS-записей
Для поддержания актуальности DNS-зон в Active Directory рекомендуется настроить автоматическую очистку устаревших динамических записей с помощью функций Aging и Scavenging.
Настройка Aging:
1️⃣ Откройте консоль DNS (
2️⃣ Включите отображение расширенных свойств через меню "Вид" > "Дополнительно".
3️⃣ В зоне прямого просмотра выберите нужную зону, откройте ее свойства и нажмите "Aging" на вкладке "Общие".
4️⃣ Активируйте опцию "Scavenge stale resource records".
5️⃣ Установите интервалы:
— No-refresh interval: период, в течение которого обновление временной метки записи запрещено (рекомендуется половина срока аренды IP-адреса на DHCP-сервере).
— Refresh interval: период, в течение которого разрешено обновление временной метки.
Настройка Scavenging:
1️⃣ В свойствах DNS-сервера на вкладке "Дополнительно" включите "Enable automatic scavenging of stale records".
2️⃣ Укажите период, через который устаревшие записи будут удаляться после признания их таковыми.
Рекомендации:
— Проверьте, чтобы критически важные записи (серверы, сетевое оборудование) были статическими и не подлежали автоматическому удалению.
— Перед первым запуском очистки рекомендуется экспортировать текущие записи в CSV-файл с помощью PowerShell для резервного копирования:
#dns #ad #windows
🧑💻 NetworkAdmin | ⚙️ EasyTools
Для поддержания актуальности DNS-зон в Active Directory рекомендуется настроить автоматическую очистку устаревших динамических записей с помощью функций Aging и Scavenging.
Настройка Aging:
dnsmgmt.msc) на контроллере домена.— No-refresh interval: период, в течение которого обновление временной метки записи запрещено (рекомендуется половина срока аренды IP-адреса на DHCP-сервере).
— Refresh interval: период, в течение которого разрешено обновление временной метки.
Настройка Scavenging:
Рекомендации:
— Проверьте, чтобы критически важные записи (серверы, сетевое оборудование) были статическими и не подлежали автоматическому удалению.
— Перед первым запуском очистки рекомендуется экспортировать текущие записи в CSV-файл с помощью PowerShell для резервного копирования:
Get-DnsServerResourceRecord -ZoneName 'yourdomain.com' |
Select-Object HostName, Timestamp, RecordType, @{Name='RecordData';Expression={$_.RecordData.IPv4Address}} |
Export-Csv -Path "C:\Backup\DNSRecords.csv" -NoTypeInformation
#dns #ad #windows
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥5
Начинающие пользователи Linux часто указывают
#!/bin/sh в начале скриптов, не задумываясь о значении этой строки. Но есть ещё #!/bin/bash и даже #!/bin/dash.Разберёмся, что это за оболочки и когда их использовать.
— Первая стандартная оболочка Unix.
— Минимальный набор возможностей, поддержка POSIX.
— В большинстве современных систем
/bin/sh — это символическая ссылка на BASH или DASH.— Самая популярная оболочка в Linux.
— Поддерживает все возможности SH + дополнительные функции (массовое присваивание переменных, массивы, циклы
for с расширенной синтаксической поддержкой и т.д.).— POSIX-совместимость опциональна (включается флагом
--posix).— Минимальная и быстрая оболочка.
— Совместима с POSIX.
— По умолчанию
/bin/sh в Debian и Ubuntu указывает на DASH, что делает системы более быстрыми и экономными по ресурсам.Что выбрать?
▪️ SH — если нужен переносимый скрипт, который будет работать на любом POSIX-совместимом Unix-системе.
▪️ BASH — когда важен расширенный функционал и удобство, т.к. BASH есть почти во всех Linux-системах.
▪️ DASH — для лёгких скриптов, где важна скорость и минимальное использование системных ресурсов.
Если нет жёстких требований к совместимости или скорости, используйте BASH — это универсально и удобно. Но для массовых операций или запуска скриптов с частым вызовом функций быстрее будет DASH из-за его меньшего потребления ресурсов и более высокой скорости выполнения.
#linux #bash #dash
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥4
Как передавать большие файлы по нестабильным каналам с минимальной нагрузкой?
Для копирования больших файлов между Windows-хостами по медленному, нестабильному или критически загруженному каналу идеально подходит протокол BITS.
Преимущества:
▪️ Автоматическая регулировка скорости передачи, чтобы не мешать другим приложениям.
▪️ Поддержка докачки даже после разрыва соединения или перезагрузки ПК.
▪️ Совместимость с SMB и HTTP.
Пример команды PowerShell:
1️⃣ Создание асинхронного задания:
2️⃣ Проверка прогресса:
3️⃣ Завершение копирования:
Используйте BITS для эффективной передачи данных без лишней нагрузки на сеть.
#bits #powershell
🧑💻 NetworkAdmin | ⚙️ EasyTools
Для копирования больших файлов между Windows-хостами по медленному, нестабильному или критически загруженному каналу идеально подходит протокол BITS.
Преимущества:
Пример команды PowerShell:
Start-BitsTransfer -Source C:\win11.vhdx -Destination \\srv\c$\image -Asynchronous -Priority low -DisplayName CopyVHDX
Get-BitsTransfer -Name CopyVHDX
Get-BitsTransfer -Name CopyVHDX | Complete-BitsTransfer
Используйте BITS для эффективной передачи данных без лишней нагрузки на сеть.
#bits #powershell
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥3
Если ищете эффективное и экономичное решение для резервного копирования, обратите внимание на bup.
Эта программа использует алгоритмы rsync для фрагментации данных и проверки контрольных сумм, а также хранит данные в формате git-репозитория.Это позволяет легко создавать инкрементные копии, экономя место, особенно если данные повторяются между разными хостами.
git clone https://github.com/bup/bup
cd bup
git checkout 0.33
apt-get build-dep bup
apt install python3-pip
pip install tornado
make && make install
export BUP_DIR=/mnt/backup
source ~/.bashrc
bup init
bup index /etc
bup save -n local-etc /etc
bup restore -C ./dest local-etc/latest/etc
#bup #backup #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
🔔 Как отправить уведомление пользователю на удалённый Windows-компьютер?
Для оповещения пользователей на удалённых компьютерах можно использовать стандартные инструменты Windows.
▪️ Команда MSG
Отправка сообщения конкретному пользователю:
Здесь username — имя пользователя, а hostname — имя удалённого сервера.
Отправка сообщения всем пользователям сервера:
Ставьте 🔥, и следующий пост будет про PowerShell скрипт.
#msg #windows #microsoft
🧑💻 NetworkAdmin | ⚙️ EasyTools
Для оповещения пользователей на удалённых компьютерах можно использовать стандартные инструменты Windows.
Команду MSG или PowerShell-скрипты.
Отправка сообщения конкретному пользователю:
MSG username /server:hostname "Сервер будет перезагружен через 10 минут. Закройте документы."
Здесь username — имя пользователя, а hostname — имя удалённого сервера.
Отправка сообщения всем пользователям сервера:
MSG * /server:hostname "Срочное сообщение всем!"
* указывает, что сообщение получат все активные пользователи сервера.Ставьте 🔥, и следующий пост будет про PowerShell скрипт.
#msg #windows #microsoft
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥68👍3👎1
🔔 Как отправить красивые уведомления через PowerShell
Для отправки уведомлений пользователям удалённых Windows-компьютеров можно использовать скрипт PowerShell RemoteSendToastNotification.ps1.
▪️ Основные функции скрипта:
• Создание уведомлений с заголовком, текстом, иконками.
• Поддержка кнопок действий (например, открыть ссылку).
• Отправка на удалённые компьютеры через PowerShell Remoting.
▪️ Пример использования:
Уведомление о перезагрузке сервера:
Интерактивное уведомление с кнопкой:
#powershell #windows #microsoft
🧑💻 NetworkAdmin | ⚙️ EasyTools
Для отправки уведомлений пользователям удалённых Windows-компьютеров можно использовать скрипт PowerShell RemoteSendToastNotification.ps1.
• Создание уведомлений с заголовком, текстом, иконками.
• Поддержка кнопок действий (например, открыть ссылку).
• Отправка на удалённые компьютеры через PowerShell Remoting.
Уведомление о перезагрузке сервера:
.\RemoteSendToastNotification.ps1 -ComputerName "hostname" `
-Title "Внимание!" `
-Message "Сервер будет перезагружен через 10 минут. Сохраните данные." `
-IconPath "C:\Images\warning.png"
Интерактивное уведомление с кнопкой:
.\RemoteSendToastNotification.ps1 -ComputerName "hostname" `
-Title "Обновление системы" `
-Message "Нажмите для подробностей." `
-ActionButton @{ "Подробнее" = "https://example.com" }
#powershell #windows #microsoft
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥5
С наступающим вас Новым годом!
Пусть он принесет вам радость, тепло и исполнение всех желаний.
Хочу сообщить, что я ухожу на небольшие каникулы до 9 января. Вернусь к вам полным сил и вдохновения!
До встречи в новом году!
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾27👍14🎄13👎1
Zabbix - мощный инструмент мониторинга, который помогает следить за состоянием ваших серверов. Одна из частых задач - мониторинг свободного места на диске. Рассмотрим сценарий: при малом количестве места на диске и сработал триггер Zabbix и нужно автоматически освободить место путем создания бэкапа файлов и перемещения их на другой сервер.
Создайте триггер, который будет срабатывать при достижении порога свободного места на диске. Например, если свободное место на /dev/sda1 меньше 10%:
{server:vfs.fs.size[/,pfree].last()}<10
#!/bin/bash
# Директория для архивирования
SOURCE_DIR="/dev/sda1/path/to/files"
BACKUP_DIR="/backup/$(date +%Y%m%d)"
REMOTE_SERVER="user@remote_server"
REMOTE_PATH="/remote/backup/path"
# Создаем директорию для бэкапа
mkdir -p $BACKUP_DIR
# Архивируем файлы старше 1 месяца
find $SOURCE_DIR -type f -mtime +30 -print0 | tar -czvf $BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz --null -T -
# Переносим архив на удаленный сервер
scp $BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz $REMOTE_SERVER:$REMOTE_PATH
# Удаляем файлы старше 1 месяца из исходной директории
find $SOURCE_DIR -type f -mtime +30 -delete
# Логирование
echo "Backup and cleanup completed on $(date)" >> /var/log/backup_cleanup.log
SOURCE_DIR - путь к директории на /dev/sda1, откуда будут архивироваться файлы.
BACKUP_DIR - локальная директория для временного хранения архивов.
REMOTE_SERVER и REMOTE_PATH - параметры удаленного сервера и пути, куда будут перемещаться архивы.
Перейдите в Configuration > Actions.
Создайте новое действие и настройте его так, чтобы оно выполнялось при срабатывании триггера на малое количество места.
В секции Operations укажите команду для выполнения скрипта:
/path/to/backup_noscript.sh
Этот подход помогает автоматизировать рутинные задачи и предотвращать проблемы, связанные с нехваткой места на диске.
#backup #linux #zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥5
Windows позволяет быстро экспортировать установленные драйверы. Это удобно при переустановке системы или создании резервной копии.
Export-WindowsDriver –Online -Destination C:\drivers
Все сторонние драйверы вместе с файлами INF, SYS, CAT и DLL будут экспортированы в указанный каталог.
pnputil.exe /add-driver C:\drivers\*.inf /subdirs /install
Найдите имя INF-файла:
Get-WindowsDriver -Online | where {($_.ProviderName -like "Realtek") -and ($_.ClassName -like "Net")}
Экспортируйте драйвер:
pnputil.exe /export-driver oem20.inf C:\drivers\realtek
#windows #backup #powershell
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45
iVentoy - это расширение для популярного инструмента Ventoy, которое позволяет загружать и устанавливать операционные системы с ISO-образов по сети (PXE). С его помощью можно быстро развернуть ОС на нескольких машинах без необходимости использования физических носителей.
• Удобство: Не нужно создавать отдельные загрузочные диски для каждого устройства.
• Гибкость: Поддержка множества ISO-образов на одном сервере.
• Скорость: Быстрая установка благодаря сетевому развертыванию.
• Простота настройки: Легко настроить и интегрировать в существующую инфраструктуру.
wget https://github.com/ventoy/Ventoy/releases/download/v1.0.xx/ventoy-x.x.xx-linux.tar.gz
tar -xvf ventoy-x.x.xx-linux.tar.gz
cd ventoy-x.x.xx
sudo sh Ventoy2Disk.sh -i /dev/sdX
wget https://github.com/ventoy/iVentoy/releases/download/v1.0.xx/iventoy-x.x.xx.tar.gz
tar -xvf iventoy-x.x.xx.tar.gz
cp -r iventoy /path/to/ventoy/
next-server <IP-адрес вашего TFTP-сервера>;
filename "pxelinux.0";
sudo ./iventoy --start
#install #oc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
Тестирование скорости интернета - важная задача для диагностики сетевых проблем и проверки качества соединения. В Windows и Linux это можно сделать прямо из командной строки, используя различные утилиты и команды. Рассмотрим, как это сделать на обеих платформах.
В Windows PowerShell можно использовать команду Measure-Command, чтобы измерить время, необходимое для загрузки файла.
Measure-Command { Invoke-WebRequest -Uri "http://speedtest.tele2.net/1MB.zip" -OutFile "1MB.zip" }
Эта команда загружает файл размером 1MB и измеряет время, за которое это происходит. На основе этого времени можно вычислить скорость загрузки.
В Windows 10 и новее wget и curl доступны из коробки.
curl -o nul -w "%{speed_download}\n" http://speedtest.tele2.net/1MB.zip
Команда curl загрузит файл и выведет скорость загрузки.
В Linux утилита wget позволяет загружать файлы из интернета и измерять скорость загрузки.
wget --output-document=/dev/null http://speedtest.tele2.net/1MB.zip
После выполнения команды wget покажет среднюю скорость загрузки.
curl также можно использовать для тестирования скорости.
curl -o /dev/null -w "\nSpeed: %{speed_download} bytes/sec\n" http://speedtest.tele2.net/1MB.zip
Эта команда загрузит файл и покажет скорость в байтах в секунду.
Утилита speedtest-cli позволяет легко тестировать скорость интернета, подключаясь к ближайшему серверу.
sudo apt install speedtest-cli
speedtest-cli
Команда выведет скорость загрузки и отдачи.
#network #windows #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
Сейчас вроде бы все оживает..Но аккуратнее в следующий раз с желаниями
#юмор
Please open Telegram to view this post
VIEW IN TELEGRAM
😁30🤡4👍3😱1
Изменение приоритета сетевых адаптеров в Windows позволяет указать, какое соединение должно использоваться по умолчанию. Это особенно полезно, если у вас есть несколько сетевых подключений и вы хотите оптимизировать их использование.
Шаги для изменения приоритета сетевых адаптеров через PowerShell:
Get-NetIPInterface
Эта команда выведет таблицу с информацией о всех сетевых интерфейсах, включая их индекс, имя (Alias), состояние, тип интерфейса и текущую метрику (InterfaceMetric).
Set-NetIPInterface -InterfaceAlias "Имя адаптера" -InterfaceMetric 10
Замените "Имя адаптера" на имя нужного сетевого интерфейса, а 10 - на желаемое значение метрики. Например:
Set-NetIPInterface -InterfaceAlias "Ethernet" -InterfaceMetric 10
Get-NetIPInterface
Проверяем, что метрика интерфейса изменилась на нужное значение.
Изменение приоритета сетевых адаптеров - это быстрый и удобный способ управления сетевыми подключениями. Этот метод позволяет точно настраивать приоритеты и обеспечивает большую гибкость в управлении сетью без необходимости использования графического интерфейса.
#network #windows
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤2
В некоторых случаях может потребоваться установить срок действия учетной записи пользователя в Linux, чтобы она автоматически отключалась после определенного времени. Это полезно для временных учетных записей или обеспечения безопасности. Сегодня рассмотрим, как установить срок действия учетной записи с помощью командной строки.
Использование команды chage
Команда
chage позволяет управлять сроком действия пароля и учетной записи пользователя.Чтобы узнать текущие параметры учетной записи, используйте следующую команду:
chage -l <имя_пользователя>
Эта команда выведет информацию о дате последнего изменения пароля, сроке действия и других параметрах.
Чтобы установить дату, после которой учетная запись будет отключена, используйте команду:
sudo chage -E <YYYY-MM-DD> <имя_пользователя>
Например, чтобы отключить учетную запись пользователя testuser 1 февраля 2025 года, выполните:
sudo chage -E 2025-02-01 testuser
Если необходимо снять ограничение по сроку действия учетной записи, используйте:
sudo chage -E -1 <имя_пользователя>
Это отключит автоматическое отключение учетной записи.
Использование useradd и usermod
При создании нового пользователя также можно сразу установить срок действия учетной записи.
sudo useradd -e <YYYY-MM-DD> <имя_пользователя>
Например:
sudo useradd -e 2025-02-01 tempuser
sudo usermod -e <YYYY-MM-DD> <имя_пользователя>
Установка срока действия учетной записи - это один из способов управления временными пользователями и повышения безопасности системы. Команды
chage, useradd и usermod позволяют гибко настраивать учетные записи в Linux, обеспечивая необходимый уровень контроля и защиты.#linux #users
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18⚡1
Zabbix предоставляет широкие возможности для мониторинга систем, и одним из самых гибких инструментов является ключ
system.run. Он позволяет выполнять любые Bash-скрипты на мониторируемых хостах и возвращать их результаты для последующего анализа.Для начала необходимо создать элемент данных, который будет запускать Bash-скрипт:
1. В веб-интерфейсе Zabbix перейдите в раздел "Конфигурация" -> "Хосты".
2. Выберите хост и перейдите в раздел "Элементы данных".
3. Нажмите "Создать элемент данных" и заполните поля:
• Имя: Назовите элемент, например, "Custom Bash Script".
• Ключ: Укажитеsystem.run["/path/to/your/noscript.sh"].
4.. Тип информации: Выберите тип возвращаемых данных (например, числовое значение).
Простой скрипт, который проверяет количество активных соединений к веб-серверу:
#!/bin/bash
netstat -an | grep ':80' | wc -l
Этот скрипт подсчитывает количество активных соединений к порту 80 и возвращает результат.
Для более сложного мониторинга, например, статуса кластера, можно использовать следующий Bash-скрипт:
#!/bin/bash
CLUSTER_NODES=("node1" "node2" "node3")
STATUS=""
for NODE in "${CLUSTER_NODES[@]}"
do
NODE_STATUS=$(ssh $NODE 'systemctl is-active cluster-service')
STATUS+="$NODE: $NODE_STATUS\n"
done
echo -e $STATUS
Этот скрипт подключается к каждому узлу кластера через SSH и проверяет статус службы cluster-service. Результаты возвращаются в формате "имя узла: статус".
#monitoring #zabbix
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤1
При откате Windows к старому снапшоту или резервной копии, можно столкнуться с ситуацией, когда компьютер выпадает из домена. Это приводит к ошибке при попытке входа под доменным пользователем:
"Не удалось установить доверительные отношения между рабочей станцией и доменом."
Когда компьютер добавляется в домен, для него создается учетная запись с паролем. Этот пароль хранится как на компьютере, так и в базе Active Directory (AD). Если после восстановления из снапшота пароли не совпадают, компьютер не может установить защищенный канал с доменом.
Для восстановления доверительных отношений с доменом и синхронизации пароля компьютера с AD можно использовать PowerShell:
Test-ComputerSecureChannel -Verbose
Эта команда проверит, существуют ли проблемы с доверительными отношениями между рабочей станцией и доменом.
Test-ComputerSecureChannel -Repair -Credential networkadminru\\admin
Замените networkadminru\\admin на ваши учетные данные администратора домена. Эта команда попытается восстановить доверительные отношения, синхронизируя пароль компьютера с AD.
Таким образом можно быстро восстановить работоспособность компьютера в домене и избежать дальнейших проблем с доступом.
#domain #windows
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
Для логирования пользовательских сессий, включая команды и действия на сервере, одним из инструментов является
auditd. Он предоставляет детальное логирование и позволяет отслеживать действия пользователей в системе.Установка auditd:
sudo apt update
sudo apt install auditd audispd-plugins
Настройка правил логирования: Правила логирования определяются в файле /etc/audit/audit.rules. Добавим правило для логирования всех команд пользователей:
echo '-a always,exit -F arch=b64 -S execve -k commands' | sudo tee -a /etc/audit/audit.rules
#!/bin/bash
LOG_DIR="/var/log/audit"
DEST_SERVER="user@remote-server:/path/to/logs"
TEMP_DIR="/tmp/audit_logs"
# Создание временной директории
mkdir -p $TEMP_DIR
# Сбор логов по пользователям
ausearch -k commands | while read -r line; do
USER=$(echo "$line" | grep -oP '(?<=uid=)[0-9]+')
TIMESTAMP=$(echo "$line" | grep -oP '(?<=time=)[0-9]+' | head -n 1)
DATE=$(date -d @$TIMESTAMP "+%Y-%m-%d_%H-%M-%S")
USERNAME=$(id -nu $USER)
# Создание файла лога
echo "$line" >> "$TEMP_DIR/${USERNAME}_${DATE}.log"
done
# Перемещение логов на удаленный сервер
scp $TEMP_DIR/* $DEST_SERVER
# Очистка временной директории
rm -rf $TEMP_DIR
Данный скрипт можно добавить в крон на сервере и тогда с установленной периодичностью данные будут автоматически перещаться.
#linux #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Чтобы минимизировать риски и усилить защиту сервера, необходимо настроить SSH-соединение с дополнительными мерами безопасности. Сегодня рассмотрим ключевые шаги для улучшения безопасности SSH.
Создание SSH-ключа:
ssh-keygen -t rsa -b 4096
Добавление ключа на сервер:
ssh-copy-id user@server_ip
После успешного добавления ключа, в файле
/etc/ssh/sshd_config измените строку: PasswordAuthentication noДля этого Измените строку в файле
/etc/ssh/sshd_config: Port 2222Используйте
ufw для настройки правил:
sudo ufw allow from 192.168.1.100 to any port 2222
sudo ufw enable
Установите Google Authenticator:
sudo apt install libpam-google-authenticator
Настройте PAM для использования 2FA, добавив строку в /etc/pam.d/sshd: auth required pam_google_authenticator.so
Установите fail2ban:
sudo apt install fail2ban
Настройте его в
/etc/fail2ban/jail.local:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
В файле
/etc/ssh/sshd_config измените: PermitRootLogin noКомбинация использования SSH-ключей, изменения порта, ограничения доступа и дополнительных мер, таких как 2FA и fail2ban, делает сервер значительно менее уязвимым к атакам.
#linux #security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤔3
Интересный трюк для защиты от создания нежелательных файлов. Если вы хотите гарантированно предотвратить создание определенного файла, вы можете сделать вместо него символьную ссылку на
/dev/null.Предположим, вы хотите предотвратить сохранение истории команд MySQL в файле .mysql_history. Для этого создайте символьную ссылку на /dev/null:
ln -s /dev/null $HOME/.mysql_history
Теперь любая попытка записи в файл истории будет перенаправляться в /dev/null, что фактически означает, что данные не сохранятся.
Символьная ссылка на /dev/null гарантирует, что любые данные, которые будут пытаться записаться в указанный файл, сразу же уничтожатся. Это надежный способ избежать случайного или нежелательного сохранения информации.
Другой возможный подход - создать пустой файл с нужным именем и установить права доступа, запрещающие его изменение. Однако, этот метод может привести к неожиданным результатам. Некоторые сервисы могут отказаться работать или создать файл с другим именем рядом.
Использование символьной ссылки на /dev/null является простым и надежным решением, которое помогает избежать этих проблем.
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥1👌1