我创建了一个程序,它遍历一堆文件并调用其中一些文件:
scp <file> user@host:<remotefile>
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,可能有数千个需要传输的小文件,并且scp正在为每个文件打开一个新的ssh连接,这有很多开销.
我想知道是否没有解决方案,我保持一个进程运行,维护连接,我可以发送它"请求"复制单个文件.
理想情况下,我正在寻找一些发送器和接收器程序的组合,这样我就可以在开始时启动一个进程(1):
ssh user@host receiverprogram
Run Code Online (Sandbox Code Playgroud)
对于每个文件,我调用一个命令(2):
senderprogram <file> <remotefile>
Run Code Online (Sandbox Code Playgroud)
并将(2)的输出传递给(1)的输入,这将导致文件被传输.最后,我可以发送进程(1)一些信号终止.
优选地,发送器和接收器程序是用于Unix的开源C程序.他们可以使用套接字而不是管道或任何其他创造性解决方案进行通信.
但是,在迭代它时,每个文件都被传输是一个重要的约束:收集文件列表然后调用一个实例scp在结束时一次传输所有文件是不可接受的.此外,我只有简单的shell访问接收主机.
更新:我找到了使用ssh的多路复用功能解决连接开销问题的解决方案,请参阅下面的答案.然而,我正在开始赏金,因为我很想知道是否存在我在这里描述的发送者/接收者程序.似乎应该存在可以使用的东西,例如xmodem/ymodem/zmodem?
我正在尝试在EC2,Ubuntu 14.04实例上设置ELK堆栈.但是一切都安装好了,除了一件事,一切都很好.
Logstash没有在Elasticsearch上创建索引.每当我尝试访问Kibana时,它都希望我从Elasticsearch中选择一个索引.
Logstash位于ES节点中,但缺少索引.这是我得到的信息:
"Unable to fetch mapping. Do you have indices matching the pattern?"
我错过了什么吗?我按照本教程:数字海洋
编辑:
这是我面临的错误的屏幕截图:
另一个截图:

我正在尝试启动并运行实际需要检查whois数据库的Web服务.我现在正在做的是丑陋的,我想尽可能地避免它:我调用gwhois命令并解析其输出.丑陋.
我做了一些搜索,试图找到一种pythonic方式来完成这项任务.一般来说,我什么都没有 - 这个旧的讨论列表链接有一种方法来检查域是否存在.不是我想要的......但是,谷歌给了我最好的东西 - 其他一切只是一堆未经证实的问题.
你们中的任何人都成功地启动并运行了一些方法吗?我非常感谢一些提示,或者我应该以开源方式,坐下来自己编写代码?:)
您可以" ls -l获取详细的目录列表,如下所示:
-rw-rw-rw- 1 alice themonkeys 1159995999 2008-08-20 07:01 foo.log
-rw-rw-rw- 1 bob bob 244251992 2008-08-20 05:30 bar.txt
Run Code Online (Sandbox Code Playgroud)
但请注意您必须沿着屏幕滑动手指以确定这些文件大小的数量级.
在目录列表中为文件大小添加逗号的好方法是什么,如下所示:
-rw-rw-rw- 1 alice themonkeys 1,159,995,999 2008-08-20 07:01 foo.log
-rw-rw-rw- 1 bob bob 244,251,992 2008-08-20 05:30 bar.txt
Run Code Online (Sandbox Code Playgroud) 我有一个具有多年历史的Mailman托管列表,我想迁移到基于Web的论坛.做得好的事情:
保持邮件列表适合那些习惯并喜欢它的人使用Web界面,但要将其与web-forum活动集成.
获取基于Web的论坛帖子,并将它们发送到邮件列表.
我已经运行了基于phpBB,Drupal,Simple Machines等的网站,并且能够进行一些编码,如果这是将一些软件包集成到Mailman所需的,或者完全替换它.但我不知道什么是可用的,商业的或开源的,可以实现这一目标.如果候选包能够合理地执行其功能并很好地整合到自己的论坛中,我也愿意接替 Mailman.
我想设置一个cron作业来将远程系统rsync到备份分区,例如:
bash -c 'rsync -avz --delete --exclude=proc --exclude=sys root@remote1:/ /mnt/remote1/'
Run Code Online (Sandbox Code Playgroud)
我希望能够"设置它并忘记它"但是如果没有/mnt/remote1安装会怎么样?(重启后或其他什么)我想错误,如果/mnt/remote1没有挂载,而不是填补本地文件系统.
编辑:
这是我为脚本提出的,清理改进升值(特别是对于空的然后...其他,我不能留空或bash错误)
#!/bin/bash
DATA=data
ERROR="0"
if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1\$"; then
ERROR=0
else
if mount /dev/vg/$1 /mnt/$1; then
ERROR=0
else
ERROR=$?
echo "Can't backup $1, /mnt/$1 could not be mounted: $ERROR"
fi
fi
if [ "$ERROR" = "0" ]; then
if cut -d' ' -f2 /proc/mounts | grep -q "^/mnt/$1/$DATA\$"; then
ERROR=0
else
if mount /dev/vg/$1$DATA /mnt/$1/data; then
ERROR=0
else …Run Code Online (Sandbox Code Playgroud) 作为开发人员,我们认为没有本地管理访问权限会严重影响我们的生产力.我们将限制运行IIS(我们是一个Web开发商店),安装应用程序,运行Microsoft电动工具等.如果您现在正在进行FDCC流程,那么听听您如何应对这些流程将会非常棒变化.
请考虑以下设置:
有2个物理服务器设置为常规mongodb复制集(包括仲裁进程,因此自动故障转移将正常工作).
现在,据我所知,大多数实际工作将在主服务器上完成,而奴隶主要只是努力保持其数据集同步.
以同样的方式在同一个2服务器上设置另一个复制集的方式将分片引入此设置是合理的,这样每个服务器都有一个作为主服务器运行的mongod进程和一个作为辅助服务器运行的进程.
预期的结果是两个服务器将共享实际查询/插入的工作量,而两者都是up.在一台服务器发生故障的情况下,整个设置应优雅地故障转移以继续运行,直到另一台服务器恢复.
除了设置和进程数(mongos/configservers/arbiters)的总体开销之外,此设置是否有任何缺点?
是否可以撤销 AWS 安全组中的所有入口规则?是否可以撤销所有 SSH 入口规则?我正在尝试使用下面的 cli 命令,但它不起作用:
aws ec2 revoke-security-group-ingress --group-id GroupID --protocol tcp --port 22
Run Code Online (Sandbox Code Playgroud) 我正在阅读谷歌的网站可靠性工程书,并遇到了我以前从未听说过的崩溃循环这个词,也无法找到定义
“如果一个任务尝试使用比它请求的更多的资源,Borg 会终止该任务并重新启动它(因为一个缓慢崩溃循环的任务通常比一个根本没有重新启动的任务更可取?)。“
什么是崩溃循环,如果有的话,它与无限循环相比如何?
sysadmin ×10
unix ×2
backup ×1
bash ×1
command-line ×1
crash ×1
filesystems ×1
forum ×1
kibana ×1
logstash ×1
mailing-list ×1
mailman ×1
mongodb ×1
python ×1
reliability ×1
replication ×1
rsync ×1
sharding ×1
shell ×1
ssh ×1
ubuntu-14.04 ×1
whois ×1