TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #309 1.47K
Отправка файлов на удаленный сервер с логированием и проверкой контрольных сумм

Как надежно передавать файлы на сервер: с логом, контрольной суммой и валидацией? Передача файлов - обычная задача, но часто делается без верификации. Добавим автоматический контроль:

▪️ Инструменты

scp / rsync - передача
sha256sum - хеши
ssh - удаленное выполнение
logger / лог-файл - аудит


▪️ Пример: передача и проверка файла


#!/bin/bash

SRC_FILE="/data/backup.tar.gz"
DEST_USER="user"
DEST_HOST="backup.server"
DEST_PATH="/srv/backups/"
LOG="/var/log/file_transfer.log"

FILENAME=$(basename "$SRC_FILE")
CHECKSUM=$(sha256sum "$SRC_FILE" | awk '{print $1}')
STAMP=$(date '+%F %T')

echo "$STAMP : Начата передача $FILENAME" | tee -a "$LOG"

# Отправка файла
scp "$SRC_FILE" "$DEST_USER@$DEST_HOST:$DEST_PATH"

# Проверка хеша на удаленной стороне
REMOTE_SUM=$(ssh "$DEST_USER@$DEST_HOST" "sha256sum '$DEST_PATH/$FILENAME' | awk '{print \$1}'")

# Сравнение и лог
if [[ "$REMOTE_SUM" == "$CHECKSUM" ]]; then
echo "$STAMP : Успешно: $FILENAME передан и проверен" | tee -a "$LOG"
else
echo "$STAMP : Ошибка: контрольные суммы не совпадают!" | tee -a "$LOG"
fi


BashTex 📱 #bash
  • 🔥 7
  • 👍 2
More from @bash_tex
  1. Oct 9, 2026BashTex 📱 #мем
  2. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  3. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  4. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  5. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  6. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →