02-27-2015 10:28 AM
Hello Experts,
I need the error codes responding to the backup policy. But unable to get it, If i run the below command it gives me successfull clients name and failed clients but not the policy name. So pls help with the correct syntax.
C:\Program Files\Veritas\NetBackup\bin\admincmd>bperror -d 02/27/2015 09:00:00 -
e 02/28/2015 12:15:00 -t backstat -by_statcode -U >e:/error
2 reports needed.
1:- error codes during a time periord with policy name.
2:- Successfull policy and error codes w.r.t policies during a time period.
Solved! Go to Solution.
02-27-2015 10:37 AM
Alright.
below command is giving both policy name, error code and successfull 0 code as well
bperror -d 12/23/2010 16:00:00 -e 12/23/2010 17:00:00 -t backstat -U
But if we require all the same information excluding successfull 0 code. I mean only error codes, clients and policy?
02-27-2015 10:54 AM
That is not what bperror command is for.
bperror -backstat is the equivalent of the GUI Backup Status report.
It gives status of ALL backups for the period in your command.
02-27-2015 12:54 PM
Easy to extract the data from OpsCenter
Reports > Backup Reports > Status & Success Rate > Status Reports > All Failed Backups
.
you can edit the result, export or email the report in various formats
save the template in My Reports for quick access so you don't have to drill down the menu each time
02-28-2015 03:02 PM
If you delete a job from activity monitor is disappears from there, but by job database I assume you mean NetBackup's track record of successful jobs with regards to job scheduling, then the answer is no, as NetBackup retains a record of which schedules within policies were successful and when - thus deleting successful jobs from the activity monitor has no impact on scheduling.
If you had a job that was run, and failed, and was deleted from activity monitor, then the only record of that job having taken place would be via 'bperror' command, and not via 'bpdbjobs'.
HTH
Here's a script to list all policies, which have had backups, within the last 24 hours, and a list of all status codes that appear at least once agianst the backup jobs for the policies - as long as the job is still in the activity monitor list.
i.e. this script assumes that jobs have not been deleted from the activity monitor.
I think it should be called something like:
list-policy-status-last-24-hours.bat
@echo off setlocal enabledelayedexpansion enableextensions set z_path=%~dp0 set z_name=%~n0 set z_file_log=!z_path!!z_name!.log set z_file_pol=!z_path!!z_name!.pol set z_file_srt=!z_path!!z_name!.srt set z_file_tmp=!z_path!!z_name!.tmp if exist "!z_file_pol!" del "!z_file_pol!" if exist "!z_file_srt!" del "!z_file_srt!" if exist "!z_file_tmp!" del "!z_file_tmp!" copy /y nul "!z_file_pol!" >nul call :log "" call :log "" call :log "************************************" call :log "Script started..." set z_date_tod=!date! set z_time_now=!time:~0,8! if "!z_date_tod:~3,1!"==" " set z_date_tod=!z_date_tod:~4,10! set z_date_tod_yyyy=!z_date_tod:~6,4! set z_date_tod_mm=!z_date_tod:~3,2! set z_date_tod_dd=!z_date_tod:~0,2! set z_date_yes_yyyy=!z_date_tod_yyyy! set z_date_yes_mm=!z_date_tod_mm! set z_date_yes_dd=!z_date_tod_dd! set /a z_date_yes_dd=!z_date_tod_dd! - 1 if !z_date_yes_dd!==0 ( set /a z_date_yes_mm=!z_date_tod_mm! - 1 if !z_date_yes_mm!==0 ( set /a z_date_yes_yyyy=!z_date_tod_yyyy! - 1 set z_date_yes_mm=12 set z_date_yes_dd=31 ) else ( if !z_date_yes_mm!==1 set z_date_yes_dd=31 if !z_date_yes_mm!==2 ( REM we can ignore the 100 vs 400 rule, for NetBackup, well, until at least around 31st Dec 2099 (anyone remember Y2K?) set /a z_tmp=!z_date_tod_yyyy! / 4 set /a z_tmp=!z_tmp! * 4 if !z_tmp!==!z_date_tod_yyyy! ( set z_date_yes_dd=29 ) else ( set z_date_yes_dd=28 ) ) if !z_date_yes_mm!==3 set z_date_yes_dd=31 if !z_date_yes_mm!==4 set z_date_yes_dd=30 if !z_date_yes_mm!==5 set z_date_yes_dd=31 if !z_date_yes_mm!==6 set z_date_yes_dd=30 if !z_date_yes_mm!==7 set z_date_yes_dd=31 if !z_date_yes_mm!==8 set z_date_yes_dd=31 if !z_date_yes_mm!==9 set z_date_yes_dd=30 if !z_date_yes_mm!==10 set z_date_yes_dd=31 if !z_date_yes_mm!==11 set z_date_yes_dd=30 if !z_date_yes_mm!==12 set z_date_yes_dd=31 ) ) set z_date_tod=!z_date_tod_dd!/!z_date_tod_mm!/!z_date_tod_yyyy! set z_date_yes=!z_date_yes_dd!/!z_date_yes_mm!/!z_date_yes_yyyy! call :log "" call :log "Today's date: !z_date_tod!" call :log "Yesterday's date: !z_date_yes!" set z_nbu_path=C:\Program Files\Veritas\NetBackup set z_bpdbjobs_exe=!z_nbu_path!\bin\admincmd\bpdbjobs.exe if not exist "!z_bpdbjobs_exe!" ( call :log "Unable to locate executable `!z_bpdbjobs_exe!`..." goto :end ) set z_since=!z_date_yes! !z_time_now! call :log "" call :log "Collecting jobs since: !z_since!" "!z_bpdbjobs_exe!" -most_columns -t "!z_since!" >"!z_file_tmp!" set z_sts=!errorlevel! if not "!z_sts!"=="0" ( call :log "call to bpdbjobs failed, status `!z_sts!`..." goto :end ) set /a z_count_backup_jobs=0 set /a z_count_policies=0 for /f "tokens=1,2,3,4,5 delims=," %%a in ('type "!z_file_tmp!"') do ( set z_job_id=%%a set z_job_type=%%b set z_job_state=%%c set z_job_status=%%d set z_job_policy=%%e if "!z_job_state!"=="3" ( set z_job_type_wanted=n if "!z_job_type!"=="0" set z_job_type_wanted=y if "!z_job_type!"=="6" set z_job_type_wanted=y if !z_job_type_wanted!==y ( set /a z_count_backup_jobs+=1 find "!z_job_policy!" "!z_file_pol!" >nul 2>nul if !errorlevel!==1 ( set /a z_count_policies+=1 (echo !z_job_policy!)>>"!z_file_pol!" ) (echo !z_job_status!)>>"!z_file_pol!.!z_job_policy!" ) ) ) call :log "" call :log "Found backup jobs: !z_count_backup_jobs!" call :log "Found policies: !z_count_policies!" Call :log "" sort "!z_file_pol!" /o "!z_file_srt!" for /f "tokens=*" %%a in ('type "!z_file_srt!"') do ( set z_policy=%%a sort "!z_file_pol!.!z_policy!" /o "!z_file_pol!.!z_policy!.srt" set z_status_prev= set z_status_list= for /f "tokens=*" %%a in ('type "!z_file_pol!.!z_policy!.srt"') do ( set z_status=%%a if not "!z_status!"=="!z_status_prev!" set z_status_list=!z_status_list!,!z_status! set z_status_prev=!z_status! ) set z_status_list=!z_status_list:~1,999! set z_policy_disp=!z_policy! * set z_policy_disp=!z_policy_disp:~0,30! call :log "Policy: !z_policy_disp! Statii: !z_status_list!" del "!z_file_pol!.!z_policy!.srt" del "!z_file_pol!.!z_policy!" ) :end call :log "" call :log "Script completed..." echo+ pause exit /b :log (echo !date! !time:~0,8! %~1) (echo !date! !time:~0,8! %~1)>>"!z_file_log!" goto :eof
02-27-2015 10:37 AM
Alright.
below command is giving both policy name, error code and successfull 0 code as well
bperror -d 12/23/2010 16:00:00 -e 12/23/2010 17:00:00 -t backstat -U
But if we require all the same information excluding successfull 0 code. I mean only error codes, clients and policy?
02-27-2015 10:54 AM
That is not what bperror command is for.
bperror -backstat is the equivalent of the GUI Backup Status report.
It gives status of ALL backups for the period in your command.
02-27-2015 12:54 PM
Easy to extract the data from OpsCenter
Reports > Backup Reports > Status & Success Rate > Status Reports > All Failed Backups
.
you can edit the result, export or email the report in various formats
save the template in My Reports for quick access so you don't have to drill down the menu each time
02-28-2015 02:15 PM
Thanks Marianne,
If we delete a job from nbu activity monotor does it mean its deleting it from the job database as well?
02-28-2015 03:02 PM
If you delete a job from activity monitor is disappears from there, but by job database I assume you mean NetBackup's track record of successful jobs with regards to job scheduling, then the answer is no, as NetBackup retains a record of which schedules within policies were successful and when - thus deleting successful jobs from the activity monitor has no impact on scheduling.
If you had a job that was run, and failed, and was deleted from activity monitor, then the only record of that job having taken place would be via 'bperror' command, and not via 'bpdbjobs'.
HTH
Here's a script to list all policies, which have had backups, within the last 24 hours, and a list of all status codes that appear at least once agianst the backup jobs for the policies - as long as the job is still in the activity monitor list.
i.e. this script assumes that jobs have not been deleted from the activity monitor.
I think it should be called something like:
list-policy-status-last-24-hours.bat
@echo off setlocal enabledelayedexpansion enableextensions set z_path=%~dp0 set z_name=%~n0 set z_file_log=!z_path!!z_name!.log set z_file_pol=!z_path!!z_name!.pol set z_file_srt=!z_path!!z_name!.srt set z_file_tmp=!z_path!!z_name!.tmp if exist "!z_file_pol!" del "!z_file_pol!" if exist "!z_file_srt!" del "!z_file_srt!" if exist "!z_file_tmp!" del "!z_file_tmp!" copy /y nul "!z_file_pol!" >nul call :log "" call :log "" call :log "************************************" call :log "Script started..." set z_date_tod=!date! set z_time_now=!time:~0,8! if "!z_date_tod:~3,1!"==" " set z_date_tod=!z_date_tod:~4,10! set z_date_tod_yyyy=!z_date_tod:~6,4! set z_date_tod_mm=!z_date_tod:~3,2! set z_date_tod_dd=!z_date_tod:~0,2! set z_date_yes_yyyy=!z_date_tod_yyyy! set z_date_yes_mm=!z_date_tod_mm! set z_date_yes_dd=!z_date_tod_dd! set /a z_date_yes_dd=!z_date_tod_dd! - 1 if !z_date_yes_dd!==0 ( set /a z_date_yes_mm=!z_date_tod_mm! - 1 if !z_date_yes_mm!==0 ( set /a z_date_yes_yyyy=!z_date_tod_yyyy! - 1 set z_date_yes_mm=12 set z_date_yes_dd=31 ) else ( if !z_date_yes_mm!==1 set z_date_yes_dd=31 if !z_date_yes_mm!==2 ( REM we can ignore the 100 vs 400 rule, for NetBackup, well, until at least around 31st Dec 2099 (anyone remember Y2K?) set /a z_tmp=!z_date_tod_yyyy! / 4 set /a z_tmp=!z_tmp! * 4 if !z_tmp!==!z_date_tod_yyyy! ( set z_date_yes_dd=29 ) else ( set z_date_yes_dd=28 ) ) if !z_date_yes_mm!==3 set z_date_yes_dd=31 if !z_date_yes_mm!==4 set z_date_yes_dd=30 if !z_date_yes_mm!==5 set z_date_yes_dd=31 if !z_date_yes_mm!==6 set z_date_yes_dd=30 if !z_date_yes_mm!==7 set z_date_yes_dd=31 if !z_date_yes_mm!==8 set z_date_yes_dd=31 if !z_date_yes_mm!==9 set z_date_yes_dd=30 if !z_date_yes_mm!==10 set z_date_yes_dd=31 if !z_date_yes_mm!==11 set z_date_yes_dd=30 if !z_date_yes_mm!==12 set z_date_yes_dd=31 ) ) set z_date_tod=!z_date_tod_dd!/!z_date_tod_mm!/!z_date_tod_yyyy! set z_date_yes=!z_date_yes_dd!/!z_date_yes_mm!/!z_date_yes_yyyy! call :log "" call :log "Today's date: !z_date_tod!" call :log "Yesterday's date: !z_date_yes!" set z_nbu_path=C:\Program Files\Veritas\NetBackup set z_bpdbjobs_exe=!z_nbu_path!\bin\admincmd\bpdbjobs.exe if not exist "!z_bpdbjobs_exe!" ( call :log "Unable to locate executable `!z_bpdbjobs_exe!`..." goto :end ) set z_since=!z_date_yes! !z_time_now! call :log "" call :log "Collecting jobs since: !z_since!" "!z_bpdbjobs_exe!" -most_columns -t "!z_since!" >"!z_file_tmp!" set z_sts=!errorlevel! if not "!z_sts!"=="0" ( call :log "call to bpdbjobs failed, status `!z_sts!`..." goto :end ) set /a z_count_backup_jobs=0 set /a z_count_policies=0 for /f "tokens=1,2,3,4,5 delims=," %%a in ('type "!z_file_tmp!"') do ( set z_job_id=%%a set z_job_type=%%b set z_job_state=%%c set z_job_status=%%d set z_job_policy=%%e if "!z_job_state!"=="3" ( set z_job_type_wanted=n if "!z_job_type!"=="0" set z_job_type_wanted=y if "!z_job_type!"=="6" set z_job_type_wanted=y if !z_job_type_wanted!==y ( set /a z_count_backup_jobs+=1 find "!z_job_policy!" "!z_file_pol!" >nul 2>nul if !errorlevel!==1 ( set /a z_count_policies+=1 (echo !z_job_policy!)>>"!z_file_pol!" ) (echo !z_job_status!)>>"!z_file_pol!.!z_job_policy!" ) ) ) call :log "" call :log "Found backup jobs: !z_count_backup_jobs!" call :log "Found policies: !z_count_policies!" Call :log "" sort "!z_file_pol!" /o "!z_file_srt!" for /f "tokens=*" %%a in ('type "!z_file_srt!"') do ( set z_policy=%%a sort "!z_file_pol!.!z_policy!" /o "!z_file_pol!.!z_policy!.srt" set z_status_prev= set z_status_list= for /f "tokens=*" %%a in ('type "!z_file_pol!.!z_policy!.srt"') do ( set z_status=%%a if not "!z_status!"=="!z_status_prev!" set z_status_list=!z_status_list!,!z_status! set z_status_prev=!z_status! ) set z_status_list=!z_status_list:~1,999! set z_policy_disp=!z_policy! * set z_policy_disp=!z_policy_disp:~0,30! call :log "Policy: !z_policy_disp! Statii: !z_status_list!" del "!z_file_pol!.!z_policy!.srt" del "!z_file_pol!.!z_policy!" ) :end call :log "" call :log "Script completed..." echo+ pause exit /b :log (echo !date! !time:~0,8! %~1) (echo !date! !time:~0,8! %~1)>>"!z_file_log!" goto :eof
02-28-2015 03:46 PM
Hmm, the first iteration of writing this script might not be exactly what you need right now - but if you explain exactly what it is you need, then I might (might) be able to help more.
One thing I've realised, is that, as it stands, it lists all policies, even those with status 0, so if you want it to list only those with status 1 AND above, or status 2 AND above - then let me know, and I'll tweak the script for you.
02-28-2015 09:03 PM
I have previously tried to explain to you about NetBackup databases, your 'Db log' post for example.
Activity Monitor info is kept in jobs database.
bperror info is kept in error database.
So, deleting from Activity Monitor will only delete from jobs database. bperror will still report on deleted jobs.
03-07-2015 07:36 AM
Hi Sdo,
Appriciate your efforts. I think this is little bit complicated for our environment but good for own learning.
03-07-2015 09:21 AM