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.