python文件搜索及上传功能实现
程序实现功能
- 利用
os.system()
调用命令行命令搜索Linux上所有的txt文件(无权限查看的被略去) - 利用
os.system()
调用命令行命令搜索Linux上具体的某个txt文件(zhaojunchen.txt)
- 利用ssh的scp上传搜索出来的txt(代码搜索出来的
zhaojunchen.txt
只有一个、如果搜索出来的是多文件,需要稍作处理)文件到服务器
程序用途
- 提供python代码与LInux命令行的交互方法
os.popen()
不同于os.system()
后者只能将命令的执行结果输出的控制台上,而前者可以将运行结果输出的python的变量里面。这样对于有命令行执行的返回结果的需求,就是非常好的方法。(就比如文章的文件搜索) - 提供了python ssh上传文件的封装方法(下载的封装代码网上百度一大堆),稍微写一点界面就可以做出一个简单易用的文件小工具
- 不觉得整体的代码很适合用作黑客攻击么 /ha/ha/ha
源代码
#!python2
import os
import paramiko
from paramiko import *
# search module
print "search all txt"
# https://www.cnblogs.com/zhibei/p/11981176.html
output = os.popen('find / -name \*.txt 2>/dev/null')
# https://www.runoob.com/python/os-popen.html
filepath = output.read()
print "all txt as follows\n"
print filepath
print "all txt show end\n"
print "search my student number zhaojunchen.txt"
output = os.popen('find / -name zhaojunchen.txt 2>/dev/null')
# https://blog.csdn.net/weixin_34304013/article/details/89995427
filepath = output.read().strip()
print "student number txt is : "+filepath
# transfer module
# python connect
def ssh_scp_put(ip, port, user, password, local_file, remote_file):
"""
:param ip: server ip
:param port: port
:param user: user
:param password: password
:param local_file: local file path
:param remote_file: (eg:/test.txt)
:return:
"""
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, port, user, password)
sftp = ssh.open_sftp()
sftp.put(local_file, remote_file)
print ("upload ok!")
ip = "118.89.120.158"
port = 22
user = "test"
password = "test"
# local_file = "/home/zhao/Desktop/project/zhaojunchen.txt"
local_file = filepath
remote_file = "/home/test/zhaojunchen.txt"
ssh_scp_put(ip, port, user, password, local_file, remote_file)
参考文献
- https://www.cnblogs.com/zhibei/p/11981176.html
- https://blog.csdn.net/weixin_34304013/article/details/89995427