小编tko*_*zka的帖子

如何在bash中等待多个子进程完成并返回退出代码!= 0当任何子进程以代码结束时!= 0?

如何在bash脚本中等待从该脚本生成的几个子进程完成并返回退出代码!= 0当任何子进程以代码结束时!= 0?

简单的脚本:

#!/bin/bash
for i in `seq 0 9`; do
  doCalculations $i &
done
wait
Run Code Online (Sandbox Code Playgroud)

上面的脚本将等待所有10个生成的子进程,但它总是会给出退出状态0(请参阅参考资料help wait).如何修改此脚本,以便它发现生成的子进程的退出状态,并在任何子进程以代码!= 0结束时返回退出代码1?

有没有更好的解决方案,而不是收集子流程的PID,按顺序等待它们并总结退出状态?

bash process wait

518
推荐指数
18
解决办法
48万
查看次数

字典与对象 - 哪个更有效,为什么?

在内存使用和CPU消耗方面,Python的效率更高 - 词典还是对象?

背景: 我必须将大量数据加载到Python中.我创建了一个只是一个字段容器的对象.创建4M实例并将它们放入字典大约需要10分钟和大约6GB的内存.字典准备好后,访问它是一眨眼.

示例: 为了检查性能,我编写了两个执行相同操作的简单程序 - 一个是使用对象,另一个是字典:

对象(执行时间~18秒):

class Obj(object):
  def __init__(self, i):
    self.i = i
    self.l = []
all = {}
for i in range(1000000):
  all[i] = Obj(i)
Run Code Online (Sandbox Code Playgroud)

字典(执行时间~12秒):

all = {}
for i in range(1000000):
  o = {}
  o['i'] = i
  o['l'] = []
  all[i] = o
Run Code Online (Sandbox Code Playgroud)

问题: 我做错了什么或字典比对象更快?如果确实字典表现更好,有人可以解释为什么吗?

python performance dictionary object

118
推荐指数
4
解决办法
4万
查看次数

如何指导cron每两周执行一次工作?

我想通过cron运行一个工作,这个工作将在每天的特定时间每两周执行一次.每周二都很容易:

0 6 * * Tue
Run Code Online (Sandbox Code Playgroud)

但是如何在"每隔一个星期二"(或者如果你愿意 - 每隔一周)制作它?我不想在它自己的脚本中实现任何逻辑,但只保留在cron中的定义.

unix linux cron scheduling

61
推荐指数
5
解决办法
6万
查看次数

为什么ssh从crontab失败但在从命令行执行时成功?

我有一个bash脚本,它对远程机器执行ssh并在那里执行命令,如:

ssh -nxv user@remotehost echo "hello world"
Run Code Online (Sandbox Code Playgroud)

当我从命令行执行命令时它工作正常,但是当作为crontab的一部分执行时它失败(errorcode = 255 - 无法建立SSH连接).细节:

...
Waiting for server public key.
Received server public key and host key.
Host 'remotehost' is known and matches the XXX host key.
...
Remote: Your host key cannot be verified: unknown or invalid host key.
Server refused our host key.
Trying XXX authentication with key '...'
Server refused our key.
...
Run Code Online (Sandbox Code Playgroud)

在本地执行时,我充当root用户,crontab也以root身份运行.从crontab和命令行执行'id'会得到完全相同的结果:

$ id
> uid=0(root) gid=0(root) groups=0(root),...
Run Code Online (Sandbox Code Playgroud)

我从一些本地机器ssh到运行crond的机器.我有ssh密钥和凭据ssh到crond机器和脚本连接到的任何其他机器.

PS.请不要问/抱怨/评论以root身份执行任何错误/错误/等等 - 这不是这个问题的目的.

unix ssh bash crontab

23
推荐指数
2
解决办法
3万
查看次数

当我中断ssh本身时如何使ssh杀死远程进程?

在bash脚本中,我通过ssh在远程机器上执行命令.如果用户通过按Ctrl + C中断脚本,它只会停止脚本 - 甚至不会停止ssh客户端.即使我杀死ssh客户端,远程命令仍在运行...

如何使bash在Crtl + c上杀死本地ssh客户端和远程命令调用?

一个简单的脚本:

#/bin/bash
ssh -n -x root@db-host 'mysqldump db' -r file.sql
Run Code Online (Sandbox Code Playgroud)

ssh bash

22
推荐指数
1
解决办法
2万
查看次数

如何在Python中设置字典的初始大小?

我将大约400万个不同的密钥放入Python字典中.创建此字典大约需要15分钟,并且在我的计算机上占用大约4GB的内存.完全创建字典后,查询字典很快.

我怀疑字典创建是如此耗费资源,因为字典经常被重新定义(因为它大大增长).是否可以在Python中创建一个具有一些初始大小或桶号的字典?

我的字典从数字指向对象.

class MyObject(object):
  def __init__(self):
    # some fields...

d = {}
d[i] = MyObject()  # 4M times on different key...
Run Code Online (Sandbox Code Playgroud)

python performance dictionary

19
推荐指数
3
解决办法
2万
查看次数

如何配置JAXB以便在解组标记值时修剪空格?

如何配置JAXB unmarshaller以便它将从字符串中修剪前导和尾随空格?

例如,让我们考虑使用JAXB注释在Java bean和XML之间进行简单的绑定:

@XmlRootElement(name="bean")
class Bean {

  @XmlElement(required=true)
  String name;

  @XmlElement(required=true)
  int number;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够解析下面给出的XML,因此bean.name不包括起始和尾随空格 - 是" 我的名字 ",而不是" \n我的名字\n ".

<bean>
  <name>
    My name
  </name>
  <number>1</number>
</bean>
Run Code Online (Sandbox Code Playgroud)

java xml jaxb

10
推荐指数
1
解决办法
8650
查看次数

标签 统计

bash ×3

dictionary ×2

performance ×2

python ×2

ssh ×2

unix ×2

cron ×1

crontab ×1

java ×1

jaxb ×1

linux ×1

object ×1

process ×1

scheduling ×1

wait ×1

xml ×1