python批量提交s3-被搁置

python批量提交s3-被搁置


来吧,先来热热身,python跑linux命令玩玩,马上就开始搞hadoop命令了,前路漫漫





​前路漫漫,但是也不要急,我们继续编写脚本,使其可以自动组装hadoop的目录结构,然后上传,这个我们具体使用多线程+消息队列的方式,还是单线程,跑测试,具体的,我们等一会儿稍晚些时候商量一下,还是说,我先测试一下。


这个题目往上面一搜一大把,因为我目前没有oa环境,无法登陆堡垒机,没法进入linux集群,哎,好烦躁,测试比较麻烦,别着急。一步一步来吧。


首先来看一下理论。


python 调用shell命令的方法

在python程序中调用shell命令,是件很酷且常用的事情……

1. os.system(command)

    此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示。这实际上是使用C标准库函数system()实现的。

    缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。

实例:os.system('ls -l *')

2. os.popen(command,mode)

打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。

os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。

实例:tmp = os.popen('ls -l *').readlines()

3. commands.getstatusoutput(command)

  使用os.popen()函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。

4. subprocess模块

此模块在python2.4中初次亮相,其中集中了关于进程的诸多操作,其中的call()完全替代了system(),而popen()被更为丰富的Popen类替代;

总结:python提供了十分完善的调用shell命令的功能,在实战中,我碰到的问题,有system和popen基本可全部搞定;



哦,楼上茫茫多一大片,先从第一步吧。来写一个shell。import subprocess

  移除点击此处添加图片说明文字

好了,这个就是测试的,然后我们上传到服务器上。

 移除

公司自己整的调度平台,里面居然还可以查hive等等,功能很强大,很多,大公司就是有钱啊!

 移除

​外网可用。

  移除点击此处添加图片说明文字

​也可以跑类似于hue的东西,

  移除点击此处添加图片说明文字

类似的。

  移除点击此处添加图片说明文字

​好了,现在我们进入调度平台。

  移除点击此处添加图片说明文字

​依次这么点,可以调度,因为目前没有堡垒机,只能用调度,来测试了,看能不能使用python shell

但是发现报错:

  移除点击此处添加图片说明文字

​哦,原来是要把python脚本亚索然后上传啊,额,这个有点恶心了,测试个python脚本这么恶心啊。受不了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值