Articles of bash

我如何(成功)从命令行openSSL解码编码的密码?

使用PyCrypto(尽pipe我已经在ObjC中用OpenSSL绑定尝试过了): from Crypto.Cipher import DES import base64 obj=DES.new('abcdefgh', DES.MODE_ECB) plain="Guido van Rossum is a space alien.XXXXXX" ciph=obj.encrypt(plain) enc=base64.b64encode(ciph) #print ciph print enc 输出base64编码的值: ESzjTnGMRFnfVOJwQfqtyXOI8yzAatioyufiSdE1dx02McNkZ2IvBg== 如果你在翻译,ciph会给你 '\x11,\xe3Nq\x8cDY\xdfT\xe2pA\xfa\xad\xc9s\x88\xf3,\xc0j\xd8\xa8\xca\xe7\xe2I\xd15w\x1d61\xc3dgb/\x06' 很简单。 我应该能够pipe这个输出到OpenSSL并解码它: 我testing以确保b64解码工作 – python enctest.py | openssl enc -base64 -d + python enctest.py + openssl enc -base64 -d ,?Nq?DY?T?pA???s??,?jب???I?5w61?dgb/ 不漂亮,但你可以看到它解码得很好,“dgb”和“Nq”仍然存在。 但是,要充分的事情: python enctest.py | openssl enc -base64 -d […]

如何计算发送和接收的networking利用率

如何使用C或shell脚本来计算传输和接收的networking利用率? 我的系统是一个embedded式Linux。 我现在的方法是logging收到的字节(b1),等待1秒,然后再次logging(b2)。 然后知道链接速度,我计算使用的接收带宽的百分比。 接收利用率=(((b2-b1)* 8)/ link_speed)* 100 有没有更好的方法?

符号链接文件比X年龄更新,然后稍后删除符号链接一次文件年龄?

我有大量的文件/文件夹进来,每天都被自动sorting到各种各样的文件夹。 我正在寻找一种方法来自动查找这些文件/文件夹,并创build符号链接到一个“传入”文件夹中的所有。 search文件的年龄应该足以查找文件,但search年龄和所有者将是理想的。 然后,一旦文件/文件夹链接到一定的年龄,例如5天,从“传入”文件夹中自动删除它们的符号链接。 这可以做一个简单的shell或python脚本,可以与cron运行吗? 谢谢!

PHP执行Bash脚本返回黑色截图

你可能famliiar与像websnapr.com网站的网站缩略图服务,例如 我目前正在做不同的目的,所以很明显,我需要一个服务器,将推出一个带有URL的网页浏览器截图,并进入下一个。 这是我通过bash script.sh执行的bash脚本'http://google.nl'/var/www/images/google.png #! /bin/bash export DISPLAY=":4" killall firefox-bin /usr/bin/firefox –display :4 "$1" & /bin/sleep 20 xte "key F11" /bin/sleep 3 /usr/bin/import -window root -display :4 "$2" /bin/sleep 3 killall firefox-bin 我有一个Xvfb运行'Xvfb:4 -screen 0 1024x768x24&' 这个脚本在通过ssh或者标准用户的terminal运行的时候工作的很好,但是当我尝试通过php来执行它时: exec('bash /var/scripts/test.sh "http://google.nl" /var/www/char.png'); 我得到的是一个1024×768的全黑屏幕截图,当在apache的错误日志中查看时,我发现它不能killall firefox,当我在主用户​​下运行(权限不允许),但即使closures它也无法启动一个(没有给出错误)。 任何想法有什么不对? 理想情况下,因为它在我的主要用户上工作,它只是希望能够执行它作为该用户而不是www数据用户,安全不是问题,因为没有直接连接到该服务器(只能通过另一台服务器同一个networking)。

当使用telnet或netcattesting一个外发的SMTP电子邮件时,我不能结束消息“with”。“在一行上”

当通过telnet或netcat发送简单的电子邮件到我的ISP的SMTP服务器时,我无法用句点来终止邮件。 最终连接超时但消息未被传送。 root@zeus:/tmp# telnet mail.charter.net 25 220 imp09 smtp.charter.net ESMTP server ready 20110115 000442 HELO charter.net 250 imp09 hello [97.94.115.109], pleased to meet you MAIL FROM: test@gmail.com 250 2.1.0 <test@gmail.com> sender ok RCPT TO: test@gmail.com 250 2.1.5 <test@gmail.com> recipient ok DATA 354 enter mail, end with "." on a line by itself test body . […]

结合netcat与bash上的聊天自动udp响应

我想在linux上结合“chat”和“nc”,所以我将创build一个小的udp服务器,对特定的请求做出响应,并发回一个答案。 实际上,我想将“nc”的标准输出redirect到“聊天”的标准input,反之亦然。 我的第一个尝试是: nc -w 3000 -u -n -l -p 30000 >&1111 <2222 & chat -V 'request' 'answer' >&2222 <1111 但它没有工作。

stream水线中的多个greps不会在完成之后终止

我似乎有一个简单的grep语句没有完成/终止后的问题。 例如: grep -v -E 'syslogd [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}: restart' | grep -v 'printStats: total reads from cache:' /var/log/customlog.log >\ /tmp/filtered_log.tmp 上述语句将删除内容并将其保存到一个临时文件中,但是在grep完成整个文件的处理之后,shell脚本将挂起,无法继续。 在命令行中手动运行该命令时,也会触发此行为。 基本上,组合多个grep语句会导致类似PAGER的操作( more / less )。 有没有人有任何build议来克服这个限制? 理想情况下,我不想做以下事情,有时customlog.log文件可能会变得巨大。 cat /var/log/customlog.log | grep -v -E 'syslogd [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}: restart' | grep -v 'printStats: total reads from cache:' > /tmp/filtered_log.tmp 谢谢, 托尼

将两行与BASH脚本相结合

我正在使用vim来创build一个简单的脚本,将lm_sensors的输出转换为另一个文件。 我的问题是需要完成的格式,需要结合两行并输出到一个文件。 这是我目前的: LINE1=(echo -en System: INFO $(date +%x) $(date +%T) : CPU Temperature \{ ; sensors| grep Core\ sed 's/ /, /g'|tr -d '\n') LINE2=(echo -e \}) echo $LINE1$LINE2 >> (FILE PATH) LINE2的唯一目的是在数据的末尾加上一个括号,所以如果有更好的方法可以做到这一点,那么我就是所有人的耳朵。 忽略格式化数据的sed和tr命令,我希望输出数据看起来如下,虽然我总是得到一个'意外的令牌';''错误信息与上面的脚本。 System: INFO (date time) : CPU Temperature { CPU Temp DATA } 我非常感谢所有的input。

lsof没有给内置的阅读bash o / p

当我做 find / 在一个terminal上,然后在另一个terminal上 lsof -a -d 0-2 -c fin 我看到从执行lsof命令列出的o / p。 但是当我这样做 echo hi ; read -t 30 hello hi 在同一个terminal(如发现)和做(在不同的terminal) lsof -a -d 0-2 -c read 我没有从lsof命令得到任何输出 为什么? 是因为阅读是内置的bash? 这里发生了什么事 ?

通过bash运行多个Java应用程序实例,如何访问shell菜单?

所以我得到了testing新的Java引擎的工作。 创build它的程序员使我成为一个testingjar文件,所以我可以testing一些crashmoments和负载平衡。 我知道这是一个文本的负载,但我希望有人能给我一个很好的答案! 预先感谢阅读! 我想自动化testing过程,所以我创build了一个bash文件。 到目前为止,它所做的是循环几次,在其中启动jar文件: java -jar /mnt/nas/i/testsail/clusteng.jar 2>> /dev/null & 之后,它得到刚开始的Java应用程序的processId: process_ids[$i]=$! 所以最终我喜欢那个jar的5个实例,全部和他们相关的processId。 现在我的问题是,程序员在应用程序周围添加了一个小shell,我可以告诉它在什么时候崩溃。 如果我只是从命令行启动引擎,它显示我的shell,我只能键入“失败moment_Of_Faillure”,它会不正常地在那里失败。 现在我想给每个实例另一个失败,我想从bash脚本中随机化。 我的问题是 如何从bash脚本中给每个实例提供命令? 我将在这里发布完整的bash脚本: #!/bin/bash # Engine testing script; Starts multiple engine instances and shoots one every 20 seconds clear echo "#####################" echo "# Start $1 processes #" echo "#####################" echo "" # create number of processes for […]