1. 自动化配置概述
自动化配置是NBU备份系统管理的重要组成部分,通过自动化可以提高管理效率,减少人工操作,降低出错概率。更多学习教程www.fgedu.net.cn
1.1 自动化的优势
- 提高管理效率
- 减少人工操作
- 降低出错概率
- 确保配置一致性
- 实现标准化管理
1.2 自动化的范围
- 备份策略配置
- 存储设备管理
- 客户端管理
- 作业调度
- 监控和报警
- 报告生成
2. 脚本自动化
脚本自动化是NBU备份系统最常用的自动化方式,通过编写脚本可以实现各种管理任务的自动化。
2.1 备份策略自动化
# vi create_backup_policy.sh
#!/bin/bash
# 策略名称
POLICY_NAME=”File_Policy”
# 客户端名称
CLIENT_NAME=”client1″
# 备份路径
BACKUP_PATH=”/data”
# 全量备份时间
FULL_BACKUP_TIME=”22:00″
# 增量备份时间
INCR_BACKUP_TIME=”23:00″
# 创建备份策略
/usr/openv/netbackup/bin/admincmd/bppolicynew $POLICY_NAME -type Standard
# 添加客户端
/usr/openv/netbackup/bin/admincmd/bpplclients $POLICY_NAME -add -client $CLIENT_NAME
# 添加备份路径
/usr/openv/netbackup/bin/admincmd/bpplinclude $POLICY_NAME -add -include $BACKUP_PATH
# 创建全量备份调度
/usr/openv/netbackup/bin/admincmd/bpplsched $POLICY_NAME -add -schedtype FULL -starttime $FULL_BACKUP_TIME -duration 480 -weekdays 0
# 创建增量备份调度
/usr/openv/netbackup/bin/admincmd/bpplsched $POLICY_NAME -add -schedtype INCREMENTAL -starttime $INCR_BACKUP_TIME -duration 480 -weekdays 1-6
# 启用策略
/usr/openv/netbackup/bin/admincmd/bpplmodify $POLICY_NAME -active yes
# 验证策略
/usr/openv/netbackup/bin/admincmd/bppllist $POLICY_NAME -U
2.2 客户端管理自动化
# vi client_management.sh
#!/bin/bash
# 客户端列表
CLIENTS=(“client1” “client2” “client3″)
# 主服务器
MASTER_SERVER=”master_server”
# 添加客户端
for CLIENT in “${CLIENTS[@]}”; do
echo “添加客户端: $CLIENT”
/usr/openv/netbackup/bin/admincmd/bpclient -add -client $CLIENT -server $MASTER_SERVER
# 验证客户端
/usr/openv/netbackup/bin/admincmd/bpclient -list -client $CLIENT
# 测试连接
/usr/openv/netbackup/bin/bpclntcmd -hosts $CLIENT
echo “”
done
# 查看所有客户端
/usr/openv/netbackup/bin/admincmd/bpclient -list
2.3 存储设备管理自动化
# vi storage_management.sh
#!/bin/bash
# 存储单元名称
STORAGE_UNIT=”SU1″
# 媒体服务器
MEDIA_SERVER=”media_server1″
# 磁盘池
DISK_POOL=”Disk_Pool_01″
# 创建磁盘池
/usr/openv/netbackup/bin/admincmd/nbdevconfig -createdp -dp $DISK_POOL -stype PureDisk -storage_server $MEDIA_SERVER
# 创建存储单元
/usr/openv/netbackup/bin/admincmd/nbdevconfig -createstorageunit -storageunit $STORAGE_UNIT -media_server $MEDIA_SERVER -stype PureDisk -dp $DISK_POOL
# 配置存储单元属性
/usr/openv/netbackup/bin/admincmd/nbdevconfig -changestorageunit -storageunit $STORAGE_UNIT -max concurrent_jobs 10
# 验证存储单元
/usr/openv/netbackup/bin/admincmd/nbdevquery -liststu -storageunit $STORAGE_UNIT -detail
# 验证磁盘池
/usr/openv/netbackup/bin/admincmd/nbdevquery -listdp -dp $DISK_POOL -detail
3. API自动化
NBU提供了REST API,可以通过API实现更灵活的自动化配置。
3.1 API基础
# /usr/openv/netbackup/bin/admincmd/nbu_api_token
Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
Expires: 2023-04-30 10:00:00
# 测试API连接
# curl -X GET “https://master_server:1556/netbackup/config/version” \
-H “Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…” \
-k
{
“version”: “10.1.1”,
“build”: “10.1.1.0_202309151200”
}
3.2 API自动化示例
# vi create_policy_api.sh
#!/bin/bash
# API令牌
TOKEN=”eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…”
# 主服务器
MASTER_SERVER=”master_server”
# 策略名称
POLICY_NAME=”API_Policy”
# 创建策略
curl -X POST “https://$MASTER_SERVER:1556/netbackup/config/policies” \
-H “Authorization: Bearer $TOKEN” \
-H “Content-Type: application/json” \
-d ‘{
“name”: “‘$POLICY_NAME'”,
“type”: “Standard”,
“active”: true,
“clients”: [
{
“name”: “client1”
}
],
“includes”: [
{
“path”: “/data”
}
],
“schedules”: [
{
“name”: “Full”,
“type”: “FULL”,
“startWindow”: {
“startTime”: “22:00”,
“durationMinutes”: 480
},
“weekdays”: [0]
},
{
“name”: “Incremental”,
“type”: “INCREMENTAL”,
“startWindow”: {
“startTime”: “23:00”,
“durationMinutes”: 480
},
“weekdays”: [1,2,3,4,5,6]
}
]
}’ \
-k
# 验证策略
curl -X GET “https://$MASTER_SERVER:1556/netbackup/config/policies/$POLICY_NAME” \
-H “Authorization: Bearer $TOKEN” \
-k
4. 调度自动化
调度自动化可以实现备份作业的自动调度和管理。
4.1 作业调度自动化
# vi job_scheduler.sh
#!/bin/bash
# 策略列表
POLICIES=(“File_Policy” “Oracle_Policy” “SQL_Policy”)
# 执行备份作业
for POLICY in “${POLICIES[@]}”; do
echo “执行 $POLICY 备份作业”
/usr/openv/netbackup/bin/admincmd/bpbackup -p $POLICY -s Full -c client1 /data
# 监控作业状态
JOB_ID=$(/usr/openv/netbackup/bin/bpdbjobs -most_recent 1 -client client1 -policy $POLICY | awk ‘{print $1}’)
echo “作业ID: $JOB_ID”
echo “监控作业状态…”
# 等待作业完成
while true; do
STATUS=$(/usr/openv/netbackup/bin/bpdbjobs -jobid $JOB_ID -details | grep “State:” | awk ‘{print $2}’)
if [ “$STATUS” = “EXIT” ]; then
break
fi
sleep 60
done
# 检查作业结果
RESULT=$(/usr/openv/netbackup/bin/bpdbjobs -jobid $JOB_ID -details | grep “Status:” | awk ‘{print $2}’)
echo “作业结果: $RESULT”
echo “”
done
4.2 自动调度配置
# vi /etc/crontab
# 每天凌晨1点执行全量备份
0 1 * * 0 /usr/local/bin/run_full_backup.sh
# 每天凌晨2点执行增量备份
0 2 * * 1-6 /usr/local/bin/run_incremental_backup.sh
# 每天凌晨3点执行备份状态检查
0 3 * * * /usr/local/bin/check_backup_status.sh
# 每周日凌晨4点执行备份报告生成
0 4 * * 0 /usr/local/bin/generate_backup_report.sh
5. 监控自动化
监控自动化可以实现对NBU备份系统的实时监控和报警。
5.1 备份状态监控
# vi backup_status_monitor.sh
#!/bin/bash
# 检查失败的备份作业
FAILED_JOBS=$(/usr/openv/netbackup/bin/bpdbjobs -failed -hours 24)
if [ ! -z “$FAILED_JOBS” ]; then
echo “过去24小时内有失败的备份作业:” > /tmp/backup_failure_alert.txt
echo “$FAILED_JOBS” >> /tmp/backup_failure_alert.txt
mail -s “NBU备份失败警报” admin@fgedu.net < /tmp/backup_failure_alert.txt
else
echo "过去24小时内没有失败的备份作业"
fi
# 检查存储容量
OVER_THRESHOLD=$(/usr/openv/netbackup/bin/admincmd/nbdevquery -listdp -all -detail | grep -A 5 "Disk Pool:" | grep -B 5 "Usage Percentage:" | grep -E "(Disk Pool:|Usage Percentage:)" | awk '/Disk Pool:/ {pool=$3} /Usage Percentage:/ {usage=$3} END {if (usage > 80) print pool ” ” usage}’)
if [ ! -z “$OVER_THRESHOLD” ]; then
echo “以下磁盘池容量超过80%:” > /tmp/storage_capacity_alert.txt
echo “$OVER_THRESHOLD” >> /tmp/storage_capacity_alert.txt
mail -s “NBU存储容量警报” admin@fgedu.net < /tmp/storage_capacity_alert.txt
else
echo "所有磁盘池容量正常"
fi
5.2 系统状态监控
# vi system_status_monitor.sh
#!/bin/bash
# 检查NBU服务状态
SERVICE_STATUS=$(/usr/openv/netbackup/bin/bpclntcmd -pn | grep -c “client_name”)
if [ $SERVICE_STATUS -eq 0 ]; then
echo “NBU服务未运行” > /tmp/nbu_service_alert.txt
mail -s “NBU服务警报” admin@fgedu.net < /tmp/nbu_service_alert.txt
else
echo "NBU服务运行正常"
fi
# 检查数据库状态
DB_STATUS=$(/usr/openv/db/bin/nbdb_admin -info | grep -c "alive and well")
if [ $DB_STATUS -eq 0 ]; then
echo "NBU数据库未运行" > /tmp/nbu_db_alert.txt
mail -s “NBU数据库警报” admin@fgedu.net < /tmp/nbu_db_alert.txt
else
echo "NBU数据库运行正常"
fi
# 检查存储设备状态
DEVICE_STATUS=$(/usr/openv/volmgr/bin/vmoprcmd -d list | grep -c "DOWN")
if [ $DEVICE_STATUS -gt 0 ]; then
echo "有存储设备处于DOWN状态" > /tmp/nbu_device_alert.txt
/usr/openv/volmgr/bin/vmoprcmd -d list | grep “DOWN” >> /tmp/nbu_device_alert.txt
mail -s “NBU存储设备警报” admin@fgedu.net < /tmp/nbu_device_alert.txt
else
echo "所有存储设备运行正常"
fi
6. 集成自动化
集成自动化可以实现NBU与其他系统的集成,提高整体管理效率。
6.1 与监控系统集成
# vi zabbix_integration.sh
#!/bin/bash
# Zabbix服务器
ZABBIX_SERVER=”zabbix_server”
# fgedu.net.cn
HOSTNAME=”nbu_master”
# 检查备份作业状态
FAILED_JOBS=$(/usr/openv/netbackup/bin/bpdbjobs -failed -hours 24 | wc -l)
# 发送到Zabbix
zabbix_sender -z $ZABBIX_SERVER -s $HOSTNAME -k nbu.backup.failed -o $FAILED_JOBS
# 检查存储容量
DISK_POOL_USAGE=$(/usr/openv/netbackup/bin/admincmd/nbdevquery -listdp -dp Disk_Pool_01 -detail | grep “Usage Percentage:” | awk ‘{print $3}’)
# 发送到Zabbix
zabbix_sender -z $ZABBIX_SERVER -s $HOSTNAME -k nbu.storage.usage -o $DISK_POOL_USAGE
# 检查服务状态
SERVICE_STATUS=$(/usr/openv/netbackup/bin/bpclntcmd -pn | grep -c “client_name”)
# 发送到Zabbix
zabbix_sender -z $ZABBIX_SERVER -s $HOSTNAME -k nbu.service.status -o $SERVICE_STATUS
6.2 与配置管理系统集成
# vi ansible_nbu_playbook.yml
—
– name: NBU配置管理
hosts: nbu_servers
become: yes
tasks:
– name: 创建备份策略
shell: /usr/openv/netbackup/bin/admincmd/bppolicynew {{ policy_name }} -type Standard
args:
creates: /usr/openv/netbackup/db/policy/{{ policy_name }}
– name: 添加客户端
shell: /usr/openv/netbackup/bin/admincmd/bpplclients {{ policy_name }} -add -client {{ client_name }}
– name: 添加备份路径
shell: /usr/openv/netbackup/bin/admincmd/bpplinclude {{ policy_name }} -add -include {{ backup_path }}
– name: 创建全量备份调度
shell: /usr/openv/netbackup/bin/admincmd/bpplsched {{ policy_name }} -add -schedtype FULL -starttime {{ full_backup_time }} -duration 480 -weekdays 0
– name: 创建增量备份调度
shell: /usr/openv/netbackup/bin/admincmd/bpplsched {{ policy_name }} -add -schedtype INCREMENTAL -starttime {{ incr_backup_time }} -duration 480 -weekdays 1-6
– name: 启用策略
shell: /usr/openv/netbackup/bin/admincmd/bpplmodify {{ policy_name }} -active yes
– name: 验证策略
shell: /usr/openv/netbackup/bin/admincmd/bppllist {{ policy_name }} -U
register: policy_status
– name: 显示策略状态
debug:
var: policy_status.stdout
6.3 与云服务集成
# vi aws_s3_integration.sh
#!/bin/bash
# AWS配置
AWS_REGION=”us-west-2″
S3_BUCKET=”nbu-backup-bucket”
# 创建云存储单元
/usr/openv/netbackup/bin/admincmd/nbdevconfig -createstorageunit -storageunit AWS_S3_SU -media_server media_server1 -stype Cloud -dp AWS_S3_DP -config “S3BucketName=$S3_BUCKET;S3Region=$AWS_REGION”
# 创建磁盘池
/usr/openv/netbackup/bin/admincmd/nbdevconfig -createdp -dp AWS_S3_DP -stype Cloud -storage_server media_server1
# 配置云存储属性
/usr/openv/netbackup/bin/admincmd/nbdevconfig -changedp -dp AWS_S3_DP -property CloudStorageClass=STANDARD
# 验证云存储
/usr/openv/netbackup/bin/admincmd/nbdevquery -listdp -dp AWS_S3_DP -detail
# 创建存储生命周期策略
/usr/openv/netbackup/bin/admincmd/nbstl -create -lifecycle Cloud_Lifecycle -description “Cloud storage lifecycle”
# 添加存储层级
/usr/openv/netbackup/bin/admincmd/nbstl -add -lifecycle Cloud_Lifecycle -storage_unit AWS_S3_SU -retention 365
# 应用存储生命周期策略
/usr/openv/netbackup/bin/admincmd/bpplmodify Cloud_Policy -lifecycle Cloud_Lifecycle
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
