Script Sinkronisasi Email CPanel ke CPanel

Berikut adalah script nya:

#!/bin/bash

SERVERNAME=$(hostname -f)
SCRIPT_NAME="$SERVERNAME - Batch IMAP TO IMAP"
LOCK_FILE="/tmp/$SERVERNAME.imapsync2.lockfile"
LOGFILE="rsync_log.txt"

HOST1=192.168.0.2
HOST2=192.168.0.1
port_ssh=2201
DOMAIN=domain.com
user_ssh=$(echo root)
user_cpanel=$(echo usercpanel)
location_text_file=$(ls -1 /home/$user_cpanel/mail/$domain > /home/listemail.txt)
source_root=$(echo /data/$user_cpanel/mail/$domain)
dest_root=$(echo /home/$user_cpanel/mail/$domain)

if [ ! -e $LOCK_FILE ]; then
    touch $LOCK_FILE
    #Run core script

    TIME_NOW=$(date +"%Y-%m-%d %T")
    echo "" >> $LOGFILE
    echo "------------------------------------" >> $LOGFILE
    echo "IMAPSync started - $TIME_NOW" >> $LOGFILE
    echo "" >> $LOGFILE

    { while IFS=';' read u1 p1; do
        USER_NAME=$u1"@"$DOMAIN
        echo "Syncing User $USER_NAME"
        TIME_NOW=$(date +"%Y-%m-%d %T")
        echo "Start Syncing User $u1"
        echo "Starting $u1 $TIME_NOW" >> $LOGFILE

        ## main script
        rsync -avz --ignore-existing -r -e "ssh -p $port_ssh" "$source_root"/"$u1"/ [email protected]"$HOST2":"$dest_root"/$u1/
        TIME_NOW=$(date +"%Y-%m-%d %T")
        echo "User $USER_NAME done"
        echo "Finished $USER_NAME $TIME_NOW" >> $LOGFILE
        echo "" >> $LOGFILE
    done ; } < "$location_text_file"

    echo "IMAPSync Finished - $TIME_NOW" >> $LOGFILE
    echo "------------------------------------" >> $LOGFILE
else
    TIME_NOW=$(date +"%Y-%m-%d %T")
    echo "$SCRIPT_NAME at $TIME_NOW is still running"
fi

Note : Pastikan list email dari kedua mesin sudah sama.

Leave a Reply

Your email address will not be published. Required fields are marked *