#!/bin/bash
# Mevcut tarih bilgisini al
CURRENT_DATE=$(date +"%d-%m-%Y")
# Veritabanı bilgileri
HOST="localhost"
DB_NAME="tasarimrehberi"
# Yedek dosyalarının kaydedileceği ana klasör
BACKUP_DIR="/yedek"
# Veritabanından collection listesini al
COLLECTIONS=$(mongo $HOST/$DB_NAME --quiet --eval "db.getCollectionNames().join(' ')")
# Her bir collection için yedekleme işlemi yap
for COLL in $COLLECTIONS
do
# Collection için klasör oluştur
COLL_DIR="$BACKUP_DIR/$COLL"
mkdir -p $COLL_DIR
# Collection'u yedekle
mongodump --host=$HOST --gzip --db=$DB_NAME --collection=$COLL --archive="$COLL_DIR/$CURRENT_DATE-$COLL.gz"
# Yedekleme başarılı ise collection'u temizle
if [ $? -eq 0 ]; then
mongo $HOST/$DB_NAME --eval "db.getCollection('$COLL').drop()"
fi
done
Yukarıdaki kodu bir metin düzenleyiciye yapıştırın.
Dosyayı mongodump_auto.sh gibi bir isimle kaydedin.
Terminali açın ve dosyanın bulunduğu klasöre gidin.
Dosyaya çalıştırma izni verin: chmod +x mongodump_auto.sh
Script’i çalıştırın: ./mongodump_auto.sh