有人可以告诉我关于/ proc / diskstats的第11个字段吗? 该文件说,它是加权I / O花费的毫秒数。 是不是像DiskIO一秒钟花费的毫秒数? 我从这个值减去前一个值后每200mslogging一次这个值,并且观察到这个值高达7000.我需要绘制一个显示磁盘IO率的图。 这是脚本: #!/bin/bash PREV_TOTAL=0 echo "" >> $1 while true; do numbers=( $(tail -3 < /proc/diskstats | head -2 | awk '{print $14}' ) ) ; let "TOTAL=$((${numbers[0]} + ${numbers[1]}))" let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" time=`date +%s%N` echo "$time $DIFF_TOTAL" >> $1 PREV_TOTAL="$TOTAL" # Wait before checking again. sleep 0.2 […]
在我的机器上,我希望只有50%的数据包能够收到。 我正在使用centOS 5.5。 为此,我在网上search。 我得到了IPtables。 我使用了IPtables的随机补丁。 命令 sudo iptables -A INPUT -p icmp –icmp-type echo-request -m random –average 50 -j DROP 产量 iptables v1.3.5: Couldn't load match `random':/lib64/iptables/libipt_random.so: cannot open shared object file: No such file or directory Try `iptables -h' or 'iptables –help' for more information. 但上面显示,图书馆失踪。 那么,我怎样才能放下50%的数据包呢? 请纠正我的上述方法或build议新的方法。 告诉我如何将这些库添加到IPtables现有的包中。 [我试过,但是这些图书馆没有在互联网上find] 编辑1 我还需要logging丢弃的数据包,所以我改变了我的iptables规则集,如下所示: iptables […]
是否有可能在shell中提示当前工作目录的名称? 我工作OSX和CentOS在/ srv / …下的多个项目和错误的目录很容易犯的错误。 我想拥有 [current_path]在某种程度上我的提示,也许有颜色这可能吗? 例如像/ srv / myproject它会提示[root @ server [myproject]#这应该保持不变,即使在/ srv / myproject /应用程序/等
最近我最近使用Amazon的CloudFormation来启动运行MongoDB的EC2 Ubuntu机器的实例。 当涉及到删除堆栈往往失败,我猜是由于无法卸载Mongo正在使用的ebs raid 10驱动器。 我想在该模板中的东西(目前有用户数据中的bash脚本)或机器拦截该消息,closuresMongo并卸下驱动器,以便删除可以干净地发生,而不是必须执行两次。 有没有一种简单的方法来增强CloudFormation来处理堆栈更干净地删除? 我意识到还有其他的select(在AWS / Juju / Puppet / etc / etc中我们的机器上安装了Chef 9 still / Chef的OWS),但是现在我只是想尽可能地干净地工作。
我有一个目前占领terminal的过程 ]$ command some_argument 我想从terminal退出并回家,但同时我不想杀死这个正在运行的进程。 对于上面的运行过程,我想实现如下所示: ]$ nohup command some_argument >& logfile &
我编写了一个脚本,连同其他任务一起连接到一个远程服务器,并提取所有已安装软件包的列表并安装它们,如下所示: echo -e "\e[36m#===# Getting list of packages to install #===#\e[0m" $ssh root@$srv 'rpm -qa –queryformat "%{NAME}\n" >/tmp/sw.lst' $scp root@$srv:/tmp/sw.lst /tmp/ np=`cat /tmp/sw.lst |wc -l` echo -e "\e[36m#===# $np Packages are going to be installed! #===#\e[0m" /usr/bin/xargs yum -y install < /tmp/sw.lst 我的问题是,当它通过列表运行时,它跳过了默认安装来的很多包,我试图保存那个时间,这是可能的吗?
考虑到SF问题“ 防止对SSH的powershell攻击 ”的优秀答案,我正在考虑在testing服务器上configuration端口敲打。 我在辩论如何连接到这个服务器和其他轻松端口的服务器。 我通常在/.ssh/configconfigurationrsa身份validation,地址和用户名,例如: Host msUpdate User bgates Hostname updates.microsoft.com IdentityFile ~/.ssh/id_rsa.bgates.pub 因此,我可以简单地键入ssh msUpdatelogin到服务器。 据我所知,/ /.ssh/config没有configuration端口敲击的function。 因此,我正在考虑ssh的包装脚本,它将自动处理敲击: $ cat login #!/bin/bash msUpdate=( 2000 3000 4000 ) otherServer=( 1024 2048 4096 ) for PORT in ${$@}; do ssh -p $PORT sleep 1 done ssh $@ 我的问题是如何写行。 我似乎无法让脚本将参数识别为要replace的数组的名称。 虽然表面上是一个Bash的问题,但是我问SF,因为我觉得完成的脚本对于这个站点的用户来说是最有用的,也因为如果有更好的方法比最有可能在这里有人会让我知道它。
我需要scp从machineB和machineC到machineA的文件。 我从machineA运行我的下面的shell脚本。 我已经正确设置了ssh密钥。 如果这些文件不在machineB ,那么它应该在machineC 。 我需要将所有PARTITION1和PARTITION2文件移动到machineA文件夹中,如下面的shell脚本所示 – #!/bin/bash readonly PRIMARY=/export/home/david/dist/primary readonly SECONDARY=/export/home/david/dist/secondary readonly FILERS_LOCATION=(machineB machineC) readonly MAPPED_LOCATION=/bat/data/snapshot PARTITION1=(0 3 5 7 9) PARTITION2=(1 2 4 6 8) dir1=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[0]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1) dir2=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[1]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1) length1=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[0]} […]
我正在使用以下命令删除旧的备份文件: find backups/ -name "bak_*.tbz" -mmin +4800 -exec rm -vf {} \; 问题:当没有新文件时,所有文件都被删除。 我喜欢在这种情况下保持最新的一个。 除了最新的文件,删除旧文件的方法是什么?
我已经花了最后一小时试图弄清楚如何在队列中充满了垃圾邮件之后,从exim邮件队列中删除某个邮件地址的所有邮件。