python连接服务器上传文件,后台执行命令

摘要:
从django.core.cacheimportcachefromYunTaimportsettingsdfufpload _ files(connectIp):ssh=paramiko.Transport((connectIp,22))try:password=cache.get('backup_server_paa

上传文件

import os

import paramiko
import logging

from django.core.cache import cache

from YunTai import settings


def upload_files(connectIp): ssh = paramiko.Transport((connectIp, 22)) try: password = cache.get('backup_server_password') if not password: return False ssh.connect(username="root", password=password) sftp = paramiko.SFTPClient.from_transport(ssh) localfile = os.path.join(settings.BASE_DIR, 'media/authFile/dr_server') print(localfile) sftp.put(localfile, "/root/dr_server") except Exception as e: return False print("上传") ssh.close() return True

后台执行命令
def handle_server(connectIp):
cmd = '''
cd /root/dr;
mkdir old;
killall dr_server;
ls;
ls;
cd ..;
cd -;
mv -f dr_server old;
mv ../dr_server .;
chmod 777 dr_server;
./dr_start.sh;
'''

try:
server_data = cache.get('server_data')
if not server_data:
return False
connectIp = server_data.get('server_ip')
password = server_data.get('password')
cache.delete('server_data')
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(connectIp, 22, 'root', password, timeout=60)
stdin, stdout, stderr = client.exec_command('nohup /root/dr/handle_server/update_server.sh > /dev/null 2>&1 &')
client.close()
return True
except Exception as e:
print(e)
logger.error(e)
return False

免责声明:文章转载自《python连接服务器上传文件,后台执行命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ArcGIS 9.3安装流程(包括Desktop和Server)动态SQL的使用方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解放双手!用 Python 控制你的鼠标和键盘

在工作中难免遇到需要在电脑上做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己去刷网页打游戏,岂不是很爽?】 很多人学习python,不知道从何学起。很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。很多已经做案例的人,却不知道如何去学习更加高深的知识。那么针对这三类人,我给大...

(转)每天一个linux命令(8):cp 命令,复制文件和文件夹

场景:自动部署脚本中为了部署方便,将配置文件放在服务器端,每次部署都使用服务端的配置文件覆盖上传上去的配置文件。 cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。 一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。 但是如果是在shell脚本中执行cp时,没有-i参...

用python调用caffe时出错:AttributeError: 'module' object has no attribute 'bool_'

由于用caffe的时候需要将/somepath/your_caffe/python include进来作为环境变量,但是caffe中有个io.py和numpy的io冲突,所以导致这种现象。 下面给出了一种解决方法,即对有冲突的io文件进行重命名: numpyのioとPyCaffeのio.pyが競合するようです。(Strange Issue using Py...

亚马逊EC2服务器登录方法

1、根据官网提供的方法登录连接到EC2服务器(官网推荐windows用户使用PUTTY连接) 2、 创建root的密码,输入如下命令: sudo passwd root 3、然后会提示你输入new password。输入一个你要设置的root的密码,需要你再输入一遍进行验证。 4、接下来,切换到root身份,输入如下命令: su root 5、使用roo...

python 基础复习 09 之基础函数

1 # 不用len() 2 # s = "景老板小护士" 3 # i = 0 4 # for k in s: 5 # i += 1 6 # print(i) 7 8 # def my_len(): 9 # i = 0 10 # for k in s: 11 # i += 1...

shell中的dd命令使用详解

一、dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释: 1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > 2. of=文件名:输出文件名,缺省为标准输出。即指...