#!/bin/sh
#VERSIYON 8.5
#DEGISKENLER ATANIYOR
dwnlog="/root/YEDEK/LOG/rsdwnlog_obs"
VRS="1.0 27-02-08"
DWNDIR="/root/RSYNC/RSYNC_PRG"
INSTALL="root/Install.PROGRAM"
OSNAME="LINUX"
CMPARAM="-zvcra --progress --backup --delete-after --timeout=25 --exclude="cmp" --backup-dir=/root/YEDEK/INSTALL_PRG --bwlimit=4 "
RMD5FILE="rsync://85.105.52.13/PROGRAMLAR/cmp/md5list"
SRVPARENT="rsync://85.105.52.13/PROGRAMLAR/ "
SRVLNX="rsync://85.105.52.13/PROGRAMLAR/ "
md5file="${DWNDIR}/cmp/md5list"
md5test="${DWNDIR}/cmp/md5test"
LOCKFILE="${DWNDIR}/cmp/lock"
#SISTEM SAATI SENKRONIZE EDILIYOR.
if [[ -f /usr/sbin/ntpdate ]]
then
/usr/sbin/ntpdate 132.236.56.250 >>$dwnlog
else
echo -e "*********DIKKAT NETDATE YUKLU DEGIL**********">>$dwnlog
fi
if [[ -a $LOCKFILE ]]
then
rm -f ${LOCKFILE}
rm -f ${md5test}
rm -f ${md5test}.install
fi
saat=$(date +%H)
dakika=$(date +%M)
saatmode=$(($saat%2))
if [[ $HOSTNAME == "obis" ]]
then
RMD5FILE="rsync://10.1.0.1/PROGRAMLAR/cmp/md5list"
SRVPARENT="rsync://10.1.0.1/PROGRAMLAR/ "
fi
#DOWNLOAD DIZINI YOKSA OLUSTURULUYOR.
if [[ ! -d ${DWNDIR} ]]
then
mkdir -p ${DWNDIR}/cmp
fi
#LOG DIZINI YOKSA OLUSTURULUYOR
if [[ ! -d /root/YEDEK/LOG ]]
then
mkdir -p /root/YEDEK/LOG
fi
echo -e "-------------------------------------------------------------------------------------------\n|\t\t\t">>$dwnlog
date >>$dwnlog
echo -e $HOSTNAME >>$dwnlog
echo -e $VRS >>$dwnlog
echo -e "|\n------------------------------------------------------------------------------------------\n">>$dwnlog
# md5 DOGRULAMA ICIN /cmp/md5list siteden indiriliyor.
rsync ${CMPARAM} ${SRVPARENT} ${DWNDIR}/ >>$dwnlog
rsync ${CMPARAM} ${RMD5FILE} ${DWNDIR}/cmp/ >>$dwnlog
cd ${DWNDIR}/
chmod 666 $md5file
#MD5SUM DOĞRULAMA cmp/md5TEST DOSYASINA KAYIT EDILIYOR.
md5sum -c < ${md5file} >&${md5test}>&2-
chmod 666 ${md5test}
cmptest=$(egrep -c "BAŞARISIZ|FAILED" ${md5test})
echo -e "Dosya dogrulama islemi yapılıyor" >>$dwnlog
echo -e ${cmptest} >>$dwnlog
#FARKLILIK ICIN INSTALL DIZINI KONTROL EDILIYOR.
#FARKLILIK VARSA ESKI DIZIN YEDEKLENEREK CEKILEN DOSYALAR YENI DIZINE KOPYALANIYOR.
#INSTALL DIZINI YOKSA RSYNC DIZINI INSTALL OLARAK KOPYALANIYOR.
if [[ $cmptest != 0 ]]
then
echo -e "dosya dogrulama islemi basarisiz oldu" >>$dwnlog
echo -e ${md5test} >>$dwnlog
else
if [[ -d "/${INSTALL}" ]]
then
cd /${INSTALL}
# INSTALL ILE RSYNC RSYNC DIZINININ KONTROLU
md5sum -c < ${md5file} >&${md5test}.install>&2-
echo -e "/${INSTALL} dizini ile ${DWNDIR} dizini dosya dogrulama islemi yaplyor" >>$dwnlog
cmptestinstall=$(egrep -c "BAŞARISIZ|FAILED" ${md5test}.install)
#cmptestinstall "0" 'sa INSTALL DIZINI ILE RSYNC DIZINI FARKLIDIR. YANI YENI VERSIYON.
if [[ $cmptestinstall != 0 ]]
then
egrep "BAŞARISIZ|FAILED" ${md5test}.install >>$dwnlog
cd /
echo -e "/${INSTALL} dizini yedekleniyor"
#ESKI VERSIYON INSTALL DIZINININ ICINDEKI VX.XX SEKLINDEKI VERSIYON BILGISI ALINIYOR.
versiyon=$(ls -1 "/${INSTALL}" | grep "V.")
if [[ -d "/${INSTALL}.${versiyon}" ]]
then
rm -fr /${INSTALL}.*
fi
rm -rf /${INSTALL}.*
mv "/${INSTALL}" "/${INSTALL}.${versiyon}">>$dwnlog
echo -e "Yeni Dosyalar ${DWNDIR} dizininden ${INSTALL} kopyalanyor" >>$dwnlog
mkdir "/${INSTALL}"
cp --preserve=timestamps ${DWNDIR}/* /${INSTALL}>>$dwnlog
else
echo -e "/${INSTALL} dizinin icindeki versiyon ile ${DWNDIR}/ dizini iciregi ayn" >>$dwnlog
fi
else
#INSTALL DİZİNİ YENIDEN OLUŞTURULUYOR.
mkdir /${INSTALL}
cp --preserve=timestamps ${DWNDIR}/* /${INSTALL} >>$dwnlog
fi
fi
#DIZIN ICERIKLERI LOG DOSYASINA ATILIYOR.
echo -e "${DWNDIR} DIZINI ICERIGI" >>$dwnlog
ls -al ${DWNDIR} >>$dwnlog
echo -e "/${INSTALL} DIZINI ICERIGI" >>$dwnlog
ls -al /${INSTALL} >>$dwnlog
cat $dwnlog
if [[ -a $LOCKFILE ]]
then
rm -f ${LOCKFILE}
fi
#GECICI DOSYALAR SILINIYOR.
rm -f ${md5test}
rm -f ${md5test}.install |