ขอเอา script มาแปะไว้กันหาย
#!/usr/bin/bash
archiveName=blabla
archiveBack=7
archivePath=/some/archive/log/path
logPath1=/where/path/log/for/archive/1
logPath2=/where/path/log/for/archive/2
#archiveDate=`date '+%Y-%m-%d'`
archiveDate=`getbefortoday`
# ---- begin make archive ----
archiveNo=0
n=$archiveBack
echo "starting archiving log file of $archiveDate ..."
cd $archivePath
for ((i = 0; i <= $archiveBack; i++)); do
if [ -w $archiveName.$n.tar.bz2 ] ; then
m=$(($n + 1))
mv -f $archiveName.$n.tar.bz2 $archiveName.$m.tar.bz2
fi
n=$(($n - 1))
done
# tar and compress log files
cd $archivePath
tar -cf $archiveName.0.tar $logPath1/$archiveDate.* $logPath2/$archiveDate.*
bzip2 -9f $archiveName.0.tar
echo "finish archive." ; echo " "
echo "starting delete old log files..."
rm -rf $logPath1/$archiveDate.* $logPath2/$archiveDate.*
echo "finish delete old log files" ; echo " "
# delete old archive log file
echo "starting delete old archive log files."
rm -f $archivePath/$archiveName.$((archiveBack + 1)).tar.bz2
archiveName=blabla
archiveBack=7
archivePath=/some/archive/log/path
logPath1=/where/path/log/for/archive/1
logPath2=/where/path/log/for/archive/2
#archiveDate=`date '+%Y-%m-%d'`
archiveDate=`getbefortoday`
# ---- begin make archive ----
archiveNo=0
n=$archiveBack
echo "starting archiving log file of $archiveDate ..."
cd $archivePath
for ((i = 0; i <= $archiveBack; i++)); do
if [ -w $archiveName.$n.tar.bz2 ] ; then
m=$(($n + 1))
mv -f $archiveName.$n.tar.bz2 $archiveName.$m.tar.bz2
fi
n=$(($n - 1))
done
# tar and compress log files
cd $archivePath
tar -cf $archiveName.0.tar $logPath1/$archiveDate.* $logPath2/$archiveDate.*
bzip2 -9f $archiveName.0.tar
echo "finish archive." ; echo " "
echo "starting delete old log files..."
rm -rf $logPath1/$archiveDate.* $logPath2/$archiveDate.*
echo "finish delete old log files" ; echo " "
# delete old archive log file
echo "starting delete old archive log files."
rm -f $archivePath/$archiveName.$((archiveBack + 1)).tar.bz2
จาก scirpt ดังกล่าวจะมีบรรทัดหนึ่ง คือ archiveDate=`getbefortoday` ตรงนี้จะไปเรียก java app เล็กๆ ที่หาวันย้อนหลังของเครื่องไป 1 วัน โดยมี format yyyy-mm-dd ซึ่งโดยปกติบน linux ผมจะใช้คำสั่ง date แล้วใส่ format เอา แต่บน solaris มันสั่งไม่เหมือนกัน แถมรีบๆ เขียน java app มันซะเลย
ใครมีวิธีดีกว่านี้บอกให้หายโง่หน่อยเถอะครับ
.
ไม่มีความคิดเห็น:
แสดงความคิดเห็น