12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-12-24 19:13:42
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
【准备工作】搭建 FTP 服务器:Windows Server 2008 R2 搭建FTP服务如果本机访问报 530 错误:1、检查用户名、密码;2、检查 ftp 目录的用户权限。如果远程主机无法访问,检查防火
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
【准备工作】
搭建 FTP 服务器:Windows Server 2008 R2 搭建FTP服务
如果本机访问报 530 错误:1、检查用户名、密码;2、检查 ftp 目录的用户权限。
如果远程主机无法访问,检查防火墙。
关于 ftp 的端口:控制端口为21;数据端口在主动模式(PORT)下为20,被动模式(PASV)下不定。
开启被动模式:在“FTP 防火墙支持”里面配置端口,然后重启“Microsoft FTP Service”服务。注意具体 ftp 站点的数据框是灰色的,需要在 IIS 总站点配置。
【code】
以下代码对 Windows 下MariaDB 10.1.18,Ubuntu 下MySQL 5.7.23 测试可行。
#encoding:utf-8#author:walker#date:2018-08-02#summary:Python3备份MySQL/MariaDB(本地+FTP),一个库一个文件importosimporttimeimportpymysqlimportpprintimportpsutilfromftplibimportFTPDBHost=r'127.0.0.1'DBPort=3306DBUser=r'root'DBPwd=r'password'#LocalBakRoot=r'/home/walker/sql_bak'#本地备份目录LocalBakRoot=r'D:\sql_bak'#本地备份目录LocalIP=''FtpHost=r'192.168.xx.xx'#FTP主机FtpBakRoot=r'sql_bak'#FTP目录FtpUser=r'ftpadmin'FtpPwd=r'password'#忽略掉系统库IgnoreDB={'information_schema','mysql','performance_schema','sys'}#根据前缀获取IPdefGetLocalIPByPrefix(prefix):localIP=''dic=psutil.net_if_addrs()foradapterindic:snicList=dic[adapter]forsnicinsnicList:ifnotsnic.family.name.startswith('AF_INET'):continueip=snic.addressifip.startswith(prefix):localIP=ipreturnlocalIP#处理一个数据库defProcOneDB(dbName):print('ProcOneDB%s...'%dbName)filename='%s_%s_%s.sql'%(time.strftime('%Y%m%d',time.localtime()),LocalIP,dbName)localFile=os.path.join(LocalBakRoot,filename)#备份数据库,如果没有-B参数不会导出数据库创建语句cmd='mysqldump-u%s-p%s-B%s>%s'%(DBUser,DBPwd,dbName,localFile)#print('cmd:%s'%cmd)print('mysqldump...')rtn=os.system(cmd)if0!=rtn:print('Error:0!=rtn')returnFalseftp=FTP()ftp.encoding='gb18030'ftp.set_pasv(False)ftp.connect(FtpHost,port=21,timeout=10)ftp.login(user=FtpUser,passwd=FtpPwd)print(ftp.getwelcome())ftp.cwd(FtpBakRoot)#以sql服务器ip作为子目录名ifLocalIPnotinftp.nlst():ftp.mkd(LocalIP)#创建子目录ftp.cwd(LocalIP)withopen(localFile,mode='rb')asf:ftp.storbinary('STOR'+filename,f)returnTrue#处理所有数据库defProcAllDB():connDB=pymysql.connect(host=DBHost,port=DBPort,user=DBUser,passwd=DBPwd,charset='utf8mb4')cur=connDB.cursor()sql="showdatabases;"print('inputsql:'+sql)cur.execute(sql)rowList=cur.fetchall()cur.close()connDB.close()dbList=list()forrowinrowList:dbList.append(row[0])print('dbList(%d):\n%s\n'%(len(dbList),pprint.pformat(dbList,indent=4)))fordbNameindbList:ifdbNameinIgnoreDB:continueprint('currenttime:%s'%time.strftime('%Y-%m-%d%H:%M:%S',time.localtime()))ProcOneDB(dbName)print('currenttime:%s\n'%time.strftime('%Y-%m-%d%H:%M:%S',time.localtime()))if__name__=='__main__':LocalIP=GetLocalIPByPrefix('192.168.xx.')ProcAllDB()
【相关阅读】
Python3 统计 ftp 文件个数和大小
ftplib — FTP protocol client
psutil
MySQL/MariaDB Tips
Ubuntu Server 18.04 与 MySQL 5.7
FTP 目录同步:pyftpsync
*** walker ***
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19