"Enter"a basıp içeriğe geçin

Mongodb Yedekleme


#!/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