Я основывался на ответе, предоставленном страхом
. Он соединяется с базой данных Oracle для получения информации о ходе восстановления RMAN.
#!/bin/bash
# 1. Create ProgressBar function
# 1.1 Input is currentState($1) and totalState($2)
function ProgressBar {
# Process data
let _progress=(${1}*100/${2}*100)/100
let _done=(${_progress}*4)/10
let _left=40- Я основывался на ответе, предоставленном страхом
. Он соединяется с базой данных Oracle для получения информации о ходе восстановления RMAN.
[110]done
# Build progressbar string lengths
_fill=$(printf "%${_done}s")
_empty=$(printf "%${_left}s")
# 1.2 Build progressbar strings and print the ProgressBar line
# 1.2.1 Output example:
# 1.2.1.1 Progress : [########################################] 100%
printf "\rProgress : [${_fill// /#}${_empty// /-}] ${_progress}%%"
}
function rman_check {
sqlplus -s / as sysdba <<EOF
set heading off
set feedback off
select
round((sofar/totalwork) * 100,0) pct_done
from
v\$session_longops
where
totalwork > sofar
AND
opname NOT LIKE '%aggregate%'
AND
opname like 'RMAN%';
exit
EOF
}
# Variables
_start=1
# This accounts as the "totalState" variable for the ProgressBar function
_end=100
_rman_progress=$(rman_check)
#echo ${_rman_progress}
# Proof of concept
#for number in $(seq ${_start} ${_end})
while [ ${_rman_progress} -lt 100 ]
do
for number in _rman_progress
do
sleep 10
ProgressBar ${number} ${_end}
done
_rman_progress=$(rman_check)
done
printf '\nFinished!\n'
У вас есть два варианта (возможно, очевидные!):
Обычно я запускаю пул приложений под учетной записью пользователя домена, таким образом вы контролируете конкретного пользователя для каждого сайта на своем сервере.
Если я не могу использовать учетную запись домена, я буду запускать сайт как «Сетевая служба» - и пользователь, который будет соответствовать этому в SQL, будет учетной записью компьютера (MACHINENAME $ - замените «machinename» своим Имя сервера IIS ").
Если вы планируете использовать новых пользователей IIS7 IIS, которые не являются пользователями Windows, вам придется использовать аутентификацию SQL вместо аутентификации Windows для доступа к базе данных SQL.