RMAN 시작과 RMAN 끝 간의 시간차를 계산해야합니다. 로그인 다음은, 내가 처음으로 4 열을 기준으로 열을 정렬하는 스크립트를 작성이bash에서 시간차를 계산하십시오.
-rw-r----- oracle/dba 2017-03-11 21:56:35 storage/backup/daily/ALG_PDB_2drut5jf.alg
-rw-r----- oracle/dba 2017-03-11 21:56:34 storage/backup/daily/ALG_PDB_2erut5jf.alg
-rw-r----- oracle/dba 2017-03-11 21:56:07 storage/backup/daily/ALG_PDB_2frut5jf.alg
-rw-r----- oracle/dba 2017-03-11 21:56:29 storage/backup/daily/ALG_PDB_2grut5jv.alg
-rw-r----- oracle/dba 2017-03-11 21:39:14 storage/backup/daily/BKPPDB_28rut42s.F_bkp
-rw-r----- oracle/dba 2017-03-11 21:47:28 storage/backup/daily/BKPPDB_29rut42s.F_bkp
-rw-r----- oracle/dba 2017-03-11 21:42:41 storage/backup/daily/BKPPDB_2arut42s.F_bkp
-rw-r----- oracle/dba 2017-03-11 21:55:33 storage/backup/daily/BKPPDB_2brut4k8.F_bkp
-rw-r----- oracle/dba 2017-03-11 21:55:36 storage/backup/daily/c-2819904582-20170311-00
-rw-r----- oracle/dba 2017-03-11 21:56:42 storage/backup/daily/c-2819904582-20170311-01
-rw-r----- oracle/dba 2017-03-11 21:56:41 storage/backup/daily/control_PDB_2hrut5kp.ctl
처럼 스크립트에게 있습니다
#!/bin/bash -x
if [ -f /storage/backup/weekly/DB-Backup-$(date -d "yesterday" '+%a-%d%m%y').tgz ]
then
export StartMin=$(tail -30 /storage/backup/weekly/DailyCompressionLog|grep "^-\|^ -" |sort -k5|awk '{print $5}' |awk -F ":" '{print $2}'|awk 'NR==1; END{print}'|awk 'FNR==1 {print $1}')
export EndMin=$(tail -30 /storage/backup/weekly/DailyCompressionLog|grep "^-\|^ -" |sort -k5|awk '{print $5}' |awk -F ":" '{print $2}'|awk 'NR==1; END{print}'|awk 'FNR==2 {print $1}')
export StartHour=$(tail -30 /storage/backup/weekly/DailyCompressionLog|grep "^-\|^ -" |sort -k5|awk '{print $5}' |awk -F ":" '{print $1}'|awk 'NR==1; END{print}'|awk 'FNR==1 {print $1}')
export EndHour=$(tail -30 /storage/backup/weekly/DailyCompressionLog|grep "^-\|^ -" |sort -k5|awk '{print $5}' |awk -F ":" '{print $1}'|awk 'NR==1; END{print}'|awk 'FNR==2 {print $1}')
echo "Backup for `date -d "yesterday" '+%a-%d%m%y'`" >> /storage/backup/weekly/MonthlyCompressionLog
echo -e "RMAN Backup Started at $StartHour":"$StartMin" >> /storage/backup/weekly/MonthlyCompressionLog
echo -e "RMAN Backup Ended at $EndHour":"$EndMin" >> /storage/backup/weekly/MonthlyCompressionLog
echo -e "Time taken to Complete Backup Job Hours:Mins $((EndHour-StartHour))":"$((EndMin-StartMin))" >> /storage/backup/weekly/MonthlyCompressionLog
echo -e "-------------------------------------------------------\n" >> /storage/backup/weekly/MonthlyCompressionLog
스크립트가 작동 (성공)
하는 경우 종료 시간이 시작 시간보다 크다
스크립트가 실패 할 때
현재 시작 시간이 종료 시간보다 큰 경우이 경우 종료 시간은 StartHour보다 큽니다.
시나리오 :: RMAN이 14:56에 시작하여 15:02에 완료하면이 경우 총 시간 끝으로 시작은 0시 6분 최소하지만 스크립트 하나가 표시됩니다 : -54
어떤 아이디어 .... 대신 개별적으로 시간과 분을 계산
위에 올린 글은'ls'의 결과입니까? – codeforester
네, 그렇습니다 ..... – OmiPenguin