Python3使用SFTP方式备份网站根目录
https://memo.xuchen.wang/archives/74.html中,我用php写了个scp方式备份的脚本,今天顺手拿py使用sftp方式重写了一下,这个脚本具备可移植性,windows上也能跑。
该脚本运行需要paramiko这个第三方库,该库为py下的ssh2实现。
$ apt install python3-paramiko
或
$ pip install paramiko
#!/usr/bin/python3
import datetime
import tarfile
import os
import paramiko
# 获取日期
dateNow = datetime.datetime.now()
strToday = dateNow.strftime("%Y%m%d-%H%M%S")
# 拼接文件名
strFilename = "bak" + strToday + ".tar.gz"
# 需要备份的目录
strBakDirPath = '/srv/'
# 拼接得到备份文件存放的本地路径
strHomeDirPath = os.path.expanduser("~")
strLocalDirPath = strHomeDirPath + '/bak/';
if not os.path.exists(strLocalDirPath):
os.makedirs(strLocalDirPath)
strLocalFilePath = strLocalDirPath + strFilename
# 远程存放路径
strRemoteFilePath = '/srv/gullo/' + strFilename
strUserName = ''
strPassWord = ''
strHost = ''
intPort = 22
# 遍历写入备份的压缩包
tarFileBak = tarfile.open(strLocalFilePath, "w:gz")
for root, dir, files in os.walk("/srv"):
for file in files:
fullPath = os.path.join(root, file)
tarFileBak.add(fullPath)
tarFileBak.close()
# 建立sftp连接
tranInst = paramiko.Transport((strHost, intPort))
tranInst.connect(username=strUserName, password=strPassWord)
sftp = paramiko.SFTPClient.from_transport(tranInst)
sftp.put(strLocalFilePath, strRemoteFilePath)
tranInst.close()
发表于 2020-01-09 18:02:00 并被添加「」标签,阅读量: 909 。
此处评论已关闭