Admin Future
239 subscribers
50 photos
1 video
4 files
87 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
🐧 Linux (Bash): Массовое Переименование + Журнал
Этот Bash-скрипт массово переименовывает файлы, добавляя префикс и создавая простой лог.

▪️ Скрипт (rename_files.sh):

Bash

#!/bin/bash
# Путь к директории (по умолчанию - текущая)
TARGET_DIR="${1:-.}"
# Префикс для новых имен
PREFIX="${2:-NEW_}"
# Файл для журнала
LOG_FILE="${TARGET_DIR}/rename_log_$(date +%Y%m%d%H%M%S).txt"

echo "Начинаем переименование файлов в '${TARGET_DIR}' с префиксом '${PREFIX}'..."
echo "Журнал будет сохранен в '${LOG_FILE}'"
echo "--- Переименование файлов ---" > "${LOG_FILE}"

find "${TARGET_DIR}" -maxdepth 1 -type f | while read -r old_path; do
old_name=$(basename "$old_path")
new_name="${PREFIX}${old_name}"
new_path=$(dirname "$old_path")/"$new_name"

if mv -v "$old_path" "$new_path"; then
echo "Переименовано: '$old_name' -> '$new_name'"
echo "$(date +%Y-%m-%d\ %H:%M:%S) SUCCESS: '$old_name' -> '$new_name'" >> "${LOG_FILE}"
else
echo "Ошибка при переименовании: '$old_name'"
echo "$(date +%Y-%m-%d\ %H:%M:%S) FAILED: '$old_name'" >> "${LOG_FILE}"
fi
done

echo "Переименование завершено. Журнал в '${LOG_FILE}'"
echo "--- Конец журнала ---" >> "${LOG_FILE}"

▪️ Как использовать:

Сохраните как rename_files.sh и дайте права на выполнение: chmod +x rename_files.sh
Запустите: ./rename_files.sh /path/to/my/files "ARCHIVE_"
/path/to/my/files — директория.
"ARCHIVE_" — префикс.

📌 Важно для отката в Bash:
В отличие от PowerShell, в Bash нет встроенной команды для отката на основе лога mv. Для отката вам нужно будет вручную проанализировать созданный rename_log_*.txt и выполнить обратные команды mv.

Bash
`
# Пример записи из лога:
# SUCCESS: 'old_file.txt' -> 'NEW_old_file.txt'

# Команда для отката:
mv /path/to/files/NEW_old_file.txt /path/to/files/old_file.txt
`
Это демонстрирует, почему PowerShell часто предпочтительнее для сложных операций, где требуется атомарность и лёгкость отката.

#powershell #bash #скрипты #automation #files #sysadmin
🔥2
🪟 Windows: Robocopy — копируем файлы как бессмертные 📂

Копируешь 500 ГБ через проводник (Ctrl+C -> Ctrl+V)?
Ошибка сети — и начинай сначала.
Проводник — для пользователей.
Админы используют Robocopy.

Это встроенная утилита, которая умеет возобновлять загрузку после обрыва и копировать в многопоточном режиме.

Команда:

robocopy "C:\Source" "\\Server\Backup" /E /Z /MT:32 /R:5 /W:5

Разбор флагов (чтобы ты понимал суть):
/E — копировать все подпапки (даже пустые).
/Z — Режим возобновления. Если сеть упала, он продолжит с того же места, а не сначала.
/MT:32 — Скорость. Копировать в 32 потока одновременно (как торрент).
/R:5 /W:5 — Если файл занят, пробовать 5 раз с паузой 5 секунд (а не висеть вечно).

Итог: Самый надежный способ перенести данные между серверами.

#windows #backup #robocopy #cmd #sysadmin #migration #files
2🔥21
📁 Windows: Проверяем, кто заблокировал файл через PowerShell

Знакомая боль: пытаешься удалить лог или переместить папку, а Windows выдает издевательское «Файл открыт в другой программе». И сидишь гадаешь — то ли это антивирус, то ли забытая сессия коллеги, то ли сам сервер решил придержать файл «на память».

Раньше мы качали Unlocker или Process Explorer, но в 2026-м всё, что нам нужно, уже есть в системе.


Скрипт для поиска «виновника» (запускай от админа):


# Ищем процесс, который держит файл (замените путь на свой)
$LockedFile = "C:\inetpub\logs\LogFiles\u_ex260401.log"

Get-Process | Where-Object {
$_.Modules.FileName -contains $LockedFile -or $_.HandleCount -gt 0
} | Select-Object Name, Id, Description | Format-Table -AutoSize

Примечание: Если файл заблокирован системой, используйте команду `handle.exe` из пакета Sysinternals — это база.

Чтобы не гадать и не ребутать весь сервер ради одного файла. Часто виновником оказывается зависший агент бэкапа или старая сессия PowerShell, которую вы сами же забыли закрыть. Пять секунд — и вы знаете, какой PID нужно «прибить».


Инструменты админа стали точнее. Не нужно сносить дерево, если мешает одна ветка.

#windows #powershell #troubleshooting #sysadmin #files #admin_future
21