Articles of shell

Bash评价莫名其妙

当一个数字大于另一个数字时,我试图让一个脚本去做一些事情,在这种情况下,当系统负载平均值超过一个定义的值时。 所有这些都在评估标准之外。 虽然我build立了一些网站的另一台服务器,我试图保持阿帕奇排队,原因并不重要,但是这个脚本已经在负载平均值低于15的系统上testing和testing,脚本打印出来: “检查是4.68和最大是15.00”DESPITE if条件告诉它不要打印任何东西,如果检查的价值不大于最大负载,这是不是。 我不是bash大师,我有一个胡子,但没有凉鞋,我已经尝试了各种不同的方括号和引用的样式,但我不明白为什么这个脚本打印什么的时候$ check小于$ max_load 。 这是Debian 6,GNU bash,版本4.1.5(1)-release-(x86_64-pc-linux-gnu) #!/bin/bash check=`cat /proc/loadavg | sed 's/./ /' | awk '{print $2}'` max_load='15.00'; high_load_log='/var/log/apache2/apache_high_load_restart.log'; apache_init='/etc/init.d/apache2'; if [[ $check > $max_load ]]; then echo " check is $check and max is $max_load"; #$apache_init stop sleep 5; #$apache_init restart echo "$(date) : Apache Restart due to […]

比较shell脚本中的string

我正在创build一个脚本来检查我的客户之一有关虚拟机的要求。 脚本的第一部分是检查操作系统是否是虚拟的。 为了实现这个目标,我创build了以下脚本。 问题是,即使系统是虚拟的,它不工作,我的意思是testing,如果不工作! 有没有人可以帮助,并说如果我做错了什么(我是初学者在shell脚本,可能是错误的)。 CHECK_SYSTEM=`dmidecode | grep -i "Product Name: VMware Virtual Platform"` if [ "$CHECK_SYSTEM" = "Product Name: VMware Virtual Platform" ] ; then printf "%s\n" "The system is Virtual" else printf "%s\n" "The system is not Virtual" exit 192 fi

.profile更改后的AIX更新环境

我正在运行AIX 5.3。 我对用户的.profile文件进行了更改(添加了几个环境variables)。 有没有一个命令,我可以用来重新处理特定用户的.profile文件,而不必注销,然后回来?

在linux启动时运行shell脚本,但每天只运行一次

在Linux启动(启动)运行shell脚本,但每天只有一次,我怎么能做到这一点? 我正在使用Redhat企业版Linux 5

从PowerShell运行可执行文件不适用于path中的空格

在PowerShell提示符下: \Windows\system32\mspaint.exe 将运行Paint。 所以将 Invoke-Expression -command "\Windows\system32\mspaint.exe" 但是如果PowerShell在path中有空格, Invoke-Expression -command "\install\sub directory\test.bat" 哪位抱怨: The term '\install\sub' is not recognized as the name of a cmdlet, function, script file, or operable program. 我错过了什么?

shell脚本(KSH)+设置文件参数和执行参数和string之间的testing

在我的Linux机器红帽5.1 – 在PPP文件 – 我只有signature.plstring! 备注 – 第三个应用程序将signature.plstring写入到ppp文件中 我在$ a param中设置ppp文件并将$ a与signature.pl进行比较 但是,正如所有在这里看到这不一样 – 为什么? 或者如果我有空的空间? 如何解决这个问题? # more /var/tmp/ppp signature.pl # a=`cat /var/tmp/ppp` # echo $a signature.pl # [[ $a = signature.pl ]] && echo equal 要么 # [[ $a == signature.pl ]] && echo equal 差异的例子,工程! – 从ksh shell(LINUX RED-HAT 5.1) [u@hw]# echo […]

通过http(s)运行任意的,encryption的shell命令?

我希望能够编码维护脚本远程运行按需。 编辑:好用例:webhooks。 例如,当有人将代码推送到github时,触发CI +分段部署。 如果我要使用安全密码(如aes128 +密码短语)来encryptionshell命令: 例如'mysecretwords cd〜&& mkdir ./something' – >'m4tpWsuiOJT0naKkyWDdNQUKMQ7', 然后允许通过一个url执行该命令: 例如' https://myserver.com/script/m4tpWsuiOJT0naKkyWDdNQUKMQ7 ' url本身包含在服务器上运行的编码命令,只能通过目标服务器解码,并使用密码短语。 我很肯定这是一个非常糟糕的主意:但是出于兴趣,这怎么可能呢? 问这个问题的行为可能是证据不足以安全地做到这一点。

如何计算具有特定扩展名的大量文件的总大小?

我在Linux中有一个包含大量文件(数万个)的目录,以及可能包含数千个文件的目录。 在某些时候,下面的du命令失败,出现“参数列表太长”的错误: du -ch data/*.txt 如果我通过查找命令pipe道,我没有得到“总计”, find data/ -iname '*.txt' | xargs du -ch

Powershell使用空对象进入foreach循环

我将所有备份列在给定的目录中: $backups = Get-ChildItem -Path $zipFilepath | Where-Object {($_.lastwritetime -lt (Get-Date).addDays(-7)) -and (-not $_.PSIsContainer) -and ($_.Name -like "backup*")} 如果我将它设置为故意不返回任何文件(.addDays(-600)),则下列内容将显示“Empty”(如预期的那样): if (!$backups) { "Empty" } 如果我尝试用一​​个空的$ backupsvariables列出名字: foreach ($file in $backups) { $file.FullName; } 我没有得到(如预期),如果我改变这个: "test"+ $file.FullName; 那么我会在“Empty”下面得到一个“testing”。 如果$备份是空的,这怎么可能?

KVM虚拟机的Shell访问

我想用一个shell来访问我的KVM虚拟机。 我通过proxmox 2.3创build了它,通过官方模板安装了Ubuntu 12.04。 我想find与之相同的命令 vzctl enter <VM_id> 为OpenVZ容器。 我没有在proxmox qm的Wiki上find任何东西。 有什么类似的吗?