셸 다 중 프로 세 스 패키지 백업 스 크 립 트
3730 단어 shell백업다 중 프로 세 스
#!/bin/sh
##############################################
# #
# #
# tar the all backup data and saved #
# in backuptar directory #
# #
##############################################
DATE=`date +%Y%m%d`
DATE_START=`date +%Y%m%d-%H:%M:%S`
Mail="[email protected]"
LogName=`echo $0 | cut -d. -f1`
pid_file="/tmp/$LogName.pid"
BACKUP_DIR="file1 file2 file3"
tmp_fifofile="/tmp/$$.fifo"
function pid_check(){
###check the rsync scrpits have finished
count=0
for i in 1 2 3
do
if [ -f "/tmp/rsync_backup.pid" ];then
sleep 60
((count++))
fi
done
if [ $count -eq 3 ];then
echo -e "Rsync the backup files maybe have problesm,the cn_backup.pid exits." | mail -s "Tarball failure,can not continue `hostnae -i`" $Mail
exit 43
fi
}
function pid_lock(){
if [ -f "$pid_file" ];then
backup_tar_pid=`cat $pid_file`
echo -e "Tarball failure for Backup Server:
PID: $backup_tar_pid
DATE: $DATE
Script: $0 " | mail -s "Tarball failure for Backup Server `hostname -i`" $Mail
echo "Tarball failure" >> /home/opsuser/backup_log/${LogName}_$DATE.log
exit 44
else
echo $$ > $pid_file
fi
}
function pid_free(){
rm $pid_file
if [ -f "$pid_file" ];then
echo "$pid_file exist, please check the pid file" >> /home/opsuser/backup_log/${LogName}_$DATE.log
fi
}
function Tarball(){
mkfifo $tmp_fifofile
exec 6<>$tmp_fifofile
rm $tmp_fifofile
Num=`echo $BACKUP_DIR | tr ' ' '
' | wc -l`
thread=8
for ((i=0;i < $thread;i++))
do
echo
done >& 6
for i in $BACKUP_DIR
do
read -u6
{
sleep 3
Name=`echo ${i##*/}`
cd $i
if [ $i = "/data/config_bak/httpd_201" ]
then
tar zcf ${Name}_${DATE}.tgz backup --exclude downloads
else
tar zcf ${Name}_${DATE}.tgz backup
fi
#ls -l ${Name}_${DATE}.tgz #It is using for test
echo >& 6
} &
done
wait
exec 6>&-
DATE_END=`date +%Y%m%d-%H:%M:%S`
echo "Make tarball SUCCEED on $DATE" >> /home/opsuser/backup_log/${LogName}_$DATE.log
echo -e "Tarball succeed for Backup Server:
PID: $$
DATE: $DATE
START: $DATE_START
END: $DATE_END
" > /tmp/backuptar.mail
}
function SendMail(){
cat /tmp/backuptar.mail | mail -s "Tarball SUCCEED for Backup Server Data `hostname -i`" $Mail
rm /tmp/backuptar.mail
}
pid_check
pid_lock
Tarball
SendMail
pid_free
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.