From 957d885524d9c1f40ef2e853de87084b779b9b25 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 16 Jun 2026 01:27:26 +0000 Subject: [PATCH] =?UTF-8?q?Adiciona=20script=20de=20monitoramento=20de=20d?= =?UTF-8?q?iret=C3=B3rio=20com=20backup=20autom=C3=A1tico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Usa inotifywait para detectar arquivos copiados/criados e salva uma cópia com timestamp no diretório de backup configurável. https://claude.ai/code/session_013D2yKbsNscbJcnrTaqi3JD --- directory_monitor.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 directory_monitor.sh diff --git a/directory_monitor.sh b/directory_monitor.sh new file mode 100755 index 0000000..c3d340e --- /dev/null +++ b/directory_monitor.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Diretório a monitorar e diretório de backup (podem ser passados como argumentos) +WATCH_DIR="${1:-/tmp/monitored}" +BACKUP_DIR="${2:-/tmp/backup}" + +if ! command -v inotifywait &>/dev/null; then + echo "Erro: inotifywait não encontrado. Instale com: sudo apt install inotify-tools" >&2 + exit 1 +fi + +mkdir -p "$WATCH_DIR" "$BACKUP_DIR" + +echo "Monitorando '$WATCH_DIR' → backups em '$BACKUP_DIR'" +echo "Pressione Ctrl+C para parar." + +inotifywait -m -e close_write,moved_to --format '%f' "$WATCH_DIR" | +while IFS= read -r filename; do + src="$WATCH_DIR/$filename" + timestamp=$(date +%Y%m%d_%H%M%S) + dest="$BACKUP_DIR/${filename%.*}_${timestamp}.${filename##*.}" + + # Arquivo sem extensão + [[ "$filename" == "${filename##*.}" ]] && dest="$BACKUP_DIR/${filename}_${timestamp}" + + cp -- "$src" "$dest" && \ + echo "[$(date -Iseconds)] Backup: '$filename' → '$dest'" +done