如何在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,按顺序等待它们并总结退出状态?
在内存使用和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)
问题: 我做错了什么或字典比对象更快?如果确实字典表现更好,有人可以解释为什么吗?
我想通过cron运行一个工作,这个工作将在每天的特定时间每两周执行一次.每周二都很容易:
0 6 * * Tue
Run Code Online (Sandbox Code Playgroud)
但是如何在"每隔一个星期二"(或者如果你愿意 - 每隔一周)制作它?我不想在它自己的脚本中实现任何逻辑,但只保留在cron中的定义.
我有一个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身份执行任何错误/错误/等等 - 这不是这个问题的目的.
在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) 我将大约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) 如何配置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)