#!/bin/bash
SRC="/media/debian/DATA/syncthing/Image-Phone/"
DST="/mnt/image/Sena-Immich/syncthing/"
SYNC_HISTORY="/mnt/image/Sena-Immich/syncthing/sync_history.txt"
# Pastikan $SRC diakhiri dengan /
if [[ "$SRC" != */ ]]; then
SRC="$SRC/"
fi
# Periksa apakah direktori sumber dan tujuan ada
if [ ! -d "$SRC" ]; then
echo "Direktori sumber ($SRC) tidak ditemukan!"
exit 1
fi
if [ ! -d "$DST" ]; then
echo "Direktori tujuan ($DST) tidak ditemukan!"
exit 1
fi
# Pastikan file sync history ada
touch "$SYNC_HISTORY"
# Debugging: Tampilkan semua file yang ditemukan di $SRC
echo "File yang ditemukan di direktori sumber ($SRC):"
find "$SRC" -type f
# Loop semua file di A
find "$SRC" -type f | while read -r src_file; do
# Buat path relatif dari file terhadap direktori sumber
rel_path="${src_file#$SRC}"
dst_file="$DST/$rel_path"
# Debugging: Tampilkan path relatif
echo "Path relatif: $rel_path"
# Jika file sudah ada di sync history, abaikan
if grep -Fxq "$rel_path" "$SYNC_HISTORY"; then
echo "File '$rel_path' sudah ada di sync history. Mengabaikan..."
continue
fi
# Jika file TIDAK ada di B tapi ada di A, salin file tersebut
if [ ! -f "$dst_file" ]; then
echo "Menyalin file '$rel_path' ke $DST..."
mkdir -p "$(dirname "$dst_file")" # Buat subdirektori jika diperlukan
cp "$src_file" "$dst_file"
# Tambahkan file ke sync history
echo "$rel_path" >> "$SYNC_HISTORY"
fi
done
# Debugging: Tampilkan isi sync history
echo "Isi sync history ($SYNC_HISTORY):"
cat "$SYNC_HISTORY"