Python脚本远程Linux创建目录、上传文件

  最近这段时间,经常通过xftp在服务器上创建目录并上传文件,繁琐的事一直循环的做,因此一直在想通过Python脚本能自动创建目录,上传文件,询问公司大佬和百度终于找到了方法,接下来看看。

一. 说明 

  主要安装两个模块paramiko与scp,功能即可实现

  paramiko是一个基于SSH用于连接远程服务器并执行相关操作(SSHClient和SFTPClinet,即一个是远程连接,一个是上传下载服务),使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。

  scp是我们在shell上经常使用的命令,用来远程传输文件。python上也能做到scp的功能

一. 代码实例

# coding:utf-8

import paramiko
from scp import SCPClient

class Host:
    def __init__(self):
        self.user = ""
        self.ip = "root"
        self.password = "123456"

    # 创建目录
    def mkdir(self):
        try:
            ssh = paramiko.SSHClient()
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh.connect(self.ip, username=self.user, password=self.password)
            sftp = ssh.open_sftp()
            sftp.mkdir("/data/etc/bill/20200224")
            print("Create folder ‘20200224‘ in remote hosts successfully!\n")
            ssh.close()
        except:
            print("Create folder failure!\n")

    def upload_img(self,img_name, remote_path="/data/etc/bill/20200224",
                   file_path="D:\PythonProject\img"):

        ssh_client = paramiko.SSHClient()
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
        ssh_client.connect(self.ip, username=self.user, password=self.password)
        scpclient = SCPClient(ssh_client.get_transport(), socket_timeout=15.0)
        local_path = file_path + "\\" + img_name
        try:
            scpclient.put(local_path, remote_path)
        except FileNotFoundError as e:
            print(e)
            print("系统找不到指定文件" + local_path)
        else:
            print("文件上传成功")
        ssh_client.close()

if __name__ == ‘__main__‘:
    t = Host
    print("Begin......\n")
    t.mkdir()
    img_name = 1.jpg
    upload_img( img_name)

  

原文地址:https://www.cnblogs.com/mtfan01/p/12360006.html

时间: 2024-10-31 14:23:01

Python脚本远程Linux创建目录、上传文件的相关文章

Linux下不借助工具实现远程linux服务器上传下载文件

# Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## 登录服务器 - `ssh [email protected]` 登录服务器```PC:~$ ssh [email protected][email protected]'s password: ``` ## 文件传输 - 下载文件- `scp [email protected]:/data/log

windows平台是上的sublime编辑远程linux平台上的文件

sublime是个跨平台的强大的代码编辑工具,不多说. 想使用sublime完成linux平台下django站点的代码编辑工作以提高效率(原来使用linux下的vim效率较低,适合编辑一些小脚本). 下载linux平台下的Sublime_Text_2.0.2_x64.tar.bz2(http://www.sublimetext.com/) 解压使用: tar -xjvf Sublime_Text_2.0.2_x64.tar.bz2 cd Sublime\ Text\ 2/ 执行 ./sublim

使用Samba服务器由win平台向linux平台上传文件

1.配置yum [[email protected] /]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# vi yum.repo --修改光盘挂载位置,enabled设置为启动 配置yum参考链接:yum配置举例 2.构建samba服务器 [[email protected] /]# yum install -y samba-* --使用yum安装samba服务器 [[email protected] /]# service smb

selenium python (十四)上传文件的处理

#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #上传过程一般要打开一个系统的windows窗口,从窗口选择本地文件添加.所以一般会卡在如何操作本地window窗口.解决的方法很简单,只需要定位到上传按钮,然后通过send_keys添加本地文件路径即可from selenium import webdriverimport  osimport time driver = webdriver.Firefox() #打开

mac 连接远程服务器、上传文件

1.连接远程服务器: ssh 命令 +用户名@服务器域名 ssh [email protected] 2.上传文件到远程服务器:scp 命令 +本地文件路径 + 用户名@服务器域名:服务器上存放的文件路径 MAC20151009AdeMac-mini:~ admin$ scp ~/documents/wx_sample.php [email protected]:/srv/www/li753-107.members.linode.com/public_html/wx/

linux rz上传文件及出错解决方案

在把Windows上的文件传至Linux端时用到SecureCRT,一般小文件都没有问题,文件太大时则出现了上传后的文件只有几K大小,当然大于2个G的是不可能传的上去的了.对于几百M到1G多的大文件要如下处理. 单独用rz会有两个问题:上传中断.上传文件变化(md5不同), 解决办法是上传是用 rz -be ,并且去掉弹出的对话框中"Upload files as ASCII"前的勾选. -a, –ascii -b, –binary 用binary的方式上传下载,不解释字符为ascii

.Net C#向远程服务器Api上传文件

Api服务代码一: /// <summary> /// 服务器接收接口 /// </summary> [HttpPost] [Route("ReceiveFile")] public HttpResponseMessage ReceiveFile() { string result = string.Empty; ArrayList list = new ArrayList(); try { Stream postStream = HttpContext.Cur

Linux系统上传文件与下载文件命令

我们用的服务器都是Linux系统的,如果用的是远程服务器,就需要将我们的代码推送过去,这里可以用到PSCP命令. (一)上传 pscp 本机文件的路径以及文件名 远程主机的用户名@远程主机IP:想要存放的目录 然后输入远程主机的用户密码 ok 文件已经上传到目标机器的指定目录下了 (二)下载 pscp 远程主机用户名@远程主机IP:远程主机文件所在的目录即文件名 本机存放文件的路径 然后输入远程主机的用户密码.ok! 其他 ------------------------------------

解决python发送multipart/form-data请求上传文件的问题

服务器接收文件时,有时会使用表单接收的方式,这意味着我们需要使用Python的requests上传表单数据和文件. 常用的方式一般如下: data = { 'name': 'nginx' } files = {'file': open("abc.csv", 'rb')} response = requests.post(url, data=data, files=files) files是封装好的参数,直接包括了文件内容,文件名,格式等,data则是表单内容,但这样做有一个问题,文件是