5.备份 | Evergreen Notes返回首页5.备份
数据备份 1.数据库备份 2.网络设备备份
数据备份
1.数据库备份
[root@database_bak scripts]# cat back_mysql.sh
#!/bin/bash
bak_dir='/opt/bak'
conf_file='/root/scripts/mysql_info'
server_num=`cat ${conf_file} | wc -l`
backup_time=`date +"%y-%m-%d"`
cd /root/scripts/
mkdir -p /opt/bak/${backup_time}
for i in `seq ${server_num}`;
do
host=`cat ${conf_file} | awk 'NR=="'$i'" {print $1}'`
user=
2.网络设备备份
`
cat
${
conf_file
}
|
awk
'NR=="'
$i
'" {print $2}'`
password=`cat ${conf_file} | awk 'NR=="'$i'" {print $3}'`
db=`cat ${conf_file} | awk 'NR=="'$i'" {print $4}'`
start_time=`date +"%s"`
mysqldump -u${user} -p${password} -h${host} --single-transaction --column-statistics=0 $db | gzip > /opt/bak/${backup_time}/${host}_${db}_${backup_time}.sql.gz 2> /root/scripts/log/err_bak.log
#sleep 10
end_time=`date +"%s"`
exec_time=$[ $end_time - $start_time ]
echo "${backup_time} ${host}_${db} 执行了${exec_time}秒。" >> /root/scripts/log/exec_time.log
done
num=`ls ${bak_dir} | wc -l`
if [ $num -gt 14 ];then
file=`ls -tlr ${bak_dir} | awk 'NR==2 {print $9}'`
if [ -n ${file} ];then
if [ -d ${bak_dir}/${file} ];then
rm -rf ${bak_dir}/${file}
fi
fi
fi
[root@database_bak scripts]# cat mysql_info
10.10.8.158 root 2A] tomatsbi_prod
10.10.8.110 root @ v60
10.10.8.110 root @ bi
10.10.8.157 root 2A] dw_amcs
10.10.8.176 root ! portal
10.10.8.180 root !ams23 ams
10.10.8.105 root QAl03vP3 ecology
10.10.8.193 dwh yxUE9 yxUE9KKMd5J!
10.10.8.88 root OP- C7A6EF8A5E414164B517024D8C87B292
10.10.8.88 root OP-1 yundong-flowable
10.10.8.88 root OP-2021 usercenter
/root/scripts/back_mysql.sh > /root/scripts/log/run_bak_mysql.log 2>&1
30 7 * * 5 /home/backup/network/exec_backup_switch.sh > /home/backup/network/exec_backup_switch.logs 2>&1
[root@database_bak network]# cat cat exec_backup_switch.sh
cat: cat: No such file or directory
#!/bin/bash
if [[ -L "$0" ]]; then
script_path=$(readlink -f "$0")
else
script_path="$0"
fi
script_dir=$(dirname
"$script_path"
)
cd ${script_dir}
backup_time=`date +"%y-%m-%d"`
bak_dir='/opt/conf_bak/switch'
/usr/local/python3.9.16/bin/python3.9 backup_switch.py
tar -zcvf ${bak_dir}/${backup_time}_switch_conf_bak.tar.gz ./conf_bak/*
test -d $bak_dir && cd $bak_dir && ls -tlr $bak_dir | awk 'NR>180 {print $9}' | xargs rm -f
[root@database_bak network]# cat backup_switch.py
from netmiko import ConnectHandler
def back_switch_config(device):
# 创建连接
file_name = device['ip']
connection = ConnectHandler(**device)
print(f'{file_name}连接交换机成功')
# 获取当前配置并保存到本地文件
# config_commands = ['dis current-configuration']
# output = connection.send_config_set(config_commands) 在配置模式下执行
commands = 'dis current-configuration'
output = connection.send_command(commands)
print('执行交换机命令成功')
# 关闭连接
connection.disconnect()
# 如果需要,可以通过Netmiko读取并保存控制台输出到本地文件
with open(f'./conf_bak/switch_config_{file_name}.txt', 'w') as file:
file.write(output)
print('保存交换机配置成功')
if __name__ == '__main__':
devices_list = [
{'device_type': 'hp_comware', 'ip': '10.0.13.10', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.13', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.11', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.16', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.14', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.15', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.20', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.21', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.18', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.19', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.11.253', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.11.254', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.10.1', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.10.16.1', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'huawei', 'ip': '10.0.10.5', 'username': 'admin', 'password': 'admin@123'},
{'device_type': 'hp_comware', 'ip': '10.0.13.100', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
{'device_type': 'hp_comware', 'ip': '10.0.13.5', 'username': 'admin', 'password': 'Nbjr@23678Amc!'},
]
for dev in devices_list:
back_switch_config(dev)