Tag: linux

对shell脚本进行unit testing

几乎所有我多年来一直使用的产品都涉及到一定程度的shell脚本(或batch file,Windows上的PowerShell等)。 尽pipe我们用Java或C ++编写了大量的代码,但似乎总有一些集成或安装任务使用shell脚本可以更好地完成。 shell脚本因此成为交付代码的一部分,因此需要像编译代码那样进行testing。 有没有人有经验的一些shell脚本unit testing框架,如shunit2 ? 我现在主要对Linux shell脚本感兴趣, 我想知道testing工具如何复制其他xUnit框架的function和易用性,以及与CruiseControl或Hudson等连续构build系统集成是多么容易。

如何使用OpenSSL编译.c文件?

我正在尝试编译一个小的.c文件,它包含以下内容: #include <openssl/ssl.h> #include <openssl/rsa.h> #include <openssl/x509.h> #include <openssl/evp.h> 在相同的文件夹中,我有.c文件我有一个/ openssl与所有这些文件(和更多),也在突触包pipe理器我看到OpenSSL安装,我想用这个编译: gcc -o Opentest Opentest.c -lcrypto 但我总是得到错误: error: openssl/ssl.h: No such file or directory error: openssl/rsa.h: No such file or directory error: openssl/x509.h: No such file or directory error: openssl/evp.h: No such file or directory 我想编译的文件只是一个.c文件,没有Makefile或./configure。 我已经尝试过了: env CFLAGS=-I/path/to/openssl/ 并试图再次编译,但我得到相同的错误。 我应该怎么做才能用openssl进行编译?

我了解/ dev / urandom?

我一直在阅读关于/dev/urandom ,据我所知, /dev/random通过利用networking数据包计时等几个事件来创buildencryption随机数。不过,我是否理解正确的/dev/urandom使用一个PRNG,从/dev/random加上一个数字? 或者,只要有一点点就可以使用/dev/random ,当它们用完时,就会从某处收集到一颗种子,然后回到PRNG。

在linux / unix下有没有相当于WinAPI的MAX_PATH?

如果我想分配一个字符数组(C),保证足够大,以保存任何有效的绝对path+文件名,它需要多大。 在Win32上,有MAX_PATH定义。 什么是Unix / Linux的等价物?

获取Linux上的一个接口的IP地址

如何从C代码获取Linux上的接口的IPv4地址? 例如,我想获取分配给eth0的IP地址(如果有的话)。

多个GZip文件的快速连接

我有gzip文件列表: file1.gz file2.gz file3.gz 有没有办法连接或gzip这些文件到一个gzip文件, 而不必解压缩它们? 在实践中,我们将在一个networking数据库(CGI)中使用它。 Web将收到来自用户的查询,并根据查询列出所有文件,并将其以batch file的forms呈现给用户。

从PHP运行Python脚本

我试图从PHP运行一个Python脚本使用以下命令: exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2'); 但是,PHP根本不会产生任何输出。 错误报告设置为E_ALL,并且display_errors已打开。 以下是我所尝试的: 我用python2 , /usr/bin/python2和python2.7代替/usr/bin/python2.7 我也使用了相对path,而不是绝对path,也没有改变任何东西。 我尝试使用命令exec , shell_exec , system 。 但是,如果我运行 if (exec('echo TEST') == 'TEST') { echo 'exec works!'; } 它工作得很好,而shutdown now不做任何事情。 PHP有权限访问和执行文件。 编辑:感谢亚历杭德罗,我能够解决这个问题。 如果你有同样的问题,不要忘记你的networking服务器很可能/不希望以root身份运行。 尝试以您的networking服务器用户或具有相似权限的用户身份login,并尝试自行运行这些命令。

删除mongodb的日志文件是否安全?

如果我删除3.1G日志文件, sudo service mongodb restart将失败。 但是,这个文件占用太多的空间。 我怎么解决这个问题? 我怎样才能删除它? bash$ du -sh /var/lib/mongodb/* 4.0K _tmp 65M auction_development.0 128M auction_development.1 17M auction_development.ns 3.1G journal 4.0K mongod.lock

nginx不听80端口

我刚刚安装了Ubuntu 12.04服务器和nginx 1.2.7,从启用了网站的站点中删除了default ,并将我自己的文件添加到站点 – 启用sites-available链接和符号链接。 然后重新启动nginx。 问题:然而去URL不会加载网站。 netstat -nlp | grep nginx netstat -nlp | grep nginx和netstat -nlp | grep 80 netstat -nlp | grep 80都返回没有结果! lsof -i :80也不返回任何内容。 从另一台服务器dig返回正确的IP地址,所以它不应该是一个DNS问题。 我能够连接到我已经停止其服务的Apache。 nginx日志也没有显示。 我应该如何解决这个问题? /etc/nginx/site-available/mysite.com server { listen 80; server_name www.mysite.com mysite.com *.mysite.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /var/www/mysite/public; index index.php index.html; location / { […]

如何在MacOS上的Shell脚本中将DATE转换为UNIX TIMESTAMP

在Linux上,您可以通过在shell脚本中将诸如“2010-10-02”之类的date转换为unix时间戳 date -d "2010-10-02" "+%s" 由于Mac OS没有与date等效的-d 。 如何在shell脚本中将date转换为unix时间戳。