shell换成Python备份数据

发布时间:2023年12月27日

? 以前做数据库备份的时候都是直接通过shell实现,执行mysqldump命令和scp命令,现在发现可以用python进行备份和远程备份,实现更加简单。

用Python备份数据

python备份和还原MySQL数据库_python 批量备份和还原mysql数据库,并打印状态日志到文件-CSDN博客文章浏览阅读2.4k次。备份数据库#!/usr/bin/env python# coding: utf-8import osimport pymysqlimport time''' 定义变量 '''databases = ['pet'] # 定义要备份的数据库名sql_host = 'localhost'sql_user = 'root' # 数据库登陆用户sql_pwd = '422518' # 数据库登陆密码root_path = './' # 存放sql文件的地址''' 创建存放备份文_python 批量备份和还原mysql数据库,并打印状态日志到文件https://blog.csdn.net/m0_46521785/article/details/115739833

python scp发送文件_mob649e81576de1的技术博客_51CTO博客python scp发送文件,##PythonSCP发送文件在进行网络文件传输时,SecureCopyProtocol(SCP)是一种常用的安全文件传输协议。它基于SSH(SecureShell)协议,可以在本地主机和远程服务器之间进行文件传输。Python提供了多种方式来进行SCP文件传输,本文将介绍如何使用Python进行SCP文件传输,并提供相应的代码示例。###SCP文件传输原理在介绍Pythoicon-default.png?t=N7T8https://blog.51cto.com/u_16175446/7306373用shell备份?

#!/usr/local/bin/expect
base_path="/usr/local/mysqldump_dir"
data_path=$base_path/data/`date +%Y%m%d`
sh_path=$base_path/bin
pas_key=111111

#设定备份保留天数
save_days=7

if [ ! -d $data_path ];then
   mkdir -p $data_path
   echo "`date +%Y-%m-%d_%H:%M:%S` 创建数据存放目录${data_path}成功!" >> $base_path/logs/execute_`date +%Y%m%d`.log

fi

#当前时间
current_date=`date +%Y%m%d`

#过期的时间
expire_date=`date -d "$current_date - $save_days day" '+%Y%m%d'`

echo "`date +%Y-%m-%d_%H:%M:%S` 开始删除过期文件,请稍后..." >> $base_path/logs/execute_`date +%Y%m%d`.log
for target_str in `ls $base_path/data | grep -v "\.zip"`
do
  if [ $target_str -lt $expire_date ];then
     rm -rf $base_path/data/$target_str
  fi 
done

echo "`date +%Y-%m-%d_%H:%M:%S` 删除过期文件成功" >>  $base_path/logs/execute_`date +%Y%m%d`.log

echo "`date +%Y-%m-%d_%H:%M:%S` 开始备份mysql数据库,请稍后..." >> $data_path/aaaa_`date +%Y%m%d`.sql

#备份aaaa
echo "`date +%Y-%m-%d_%H:%M:%S` 开始备份aaaa数据库,请稍后..." >> $base_path/logs/execute_`date +%Y%m%d`.log
mysqldump --user=yjs --password=yjsBigdata@2022 --lock-all-tables aaaa >  $data_path/aaaa_`date +%Y%m%d`.sql
echo "`date +%Y-%m-%d_%H:%M:%S` 备份aaaa数据库成功,文件大小为[`du -m $data_path/aaaa_${current_date}.sql | awk '{print $1}'`M]"  >> $base_path/logs/execute_`date +%Y%m%d`.log


echo "`date +%Y-%m-%d_%H:%M:%S` myql数据库备份成功" >> $base_path/logs/execute_`date +%Y%m%d`.log

echo "`date +%Y-%m-%d_%H:%M:%S` 开始对备份文件进行压缩,请稍后..."
cd $base_path/data
zip -r mysql_dump_$current_date.zip ./$current_date
echo "`date +%Y-%m-%d_%H:%M:%S` 备份文件压缩成功!"  >> $base_path/logs/execute_`date +%Y%m%d`.log

ip_str=10.200.100.1
echo "`date +%Y-%m-%d_%H:%M:%S` 压缩文件开始上传文件到文件服务器${ip_str},请稍后..." >> $base_path/logs/execute_`date +%Y%m%d`.log
 $sh_path/scp_file.sh $base_path $pas_key $current_date $ip_str
echo "`date +%Y-%m-%d_%H:%M:%S` 压缩文件上传文件服务器${ip_str}成功..." >> $base_path/logs/execute_`date +%Y%m%d`.log


rm -rf $base_path/data/mysql_dump_$current_date.zip


?

python与用shell的区别:

实现功能:

Shell需要通过相关命令进行特定的筛选,灵活性比较高,但是比较复杂

Python只需要调用别人写好的模块即可实现相关功能,且不需要熟悉Linux命令,但是能够实现的功能相对来说不够灵活,总体就是简单

跨平台性:

Shell可以在任意Linux平台上运行

Python可以在任意平台上运行,所以Python的跨平台性更强

文章来源:https://blog.csdn.net/weixin_42124960/article/details/135238080
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。