几年来我所使用的每一件产品都涉及一定程度的shell脚本(或Windows上的批处理文件,PowerShell等).尽管我们用Java或C++编写了大量代码,但似乎总有一些集成或安装任务最好用shell脚本完成.
因此,shell脚本成为已发布代码的一部分,因此需要像编译代码一样进行测试.有没有人有过一些shell脚本单元测试框架的经验,比如shunit2?我现在主要对Linux shell脚本感兴趣; 我想知道测试工具如何复制其他xUnit框架的功能和易用性,以及与CruiseControl或Hudson等连续构建系统集成是多么容易.
我需要阅读Linux系统上的一些巨大的日志文件.日志中有很多混乱.目前我正在做这样的事情:
cat logfile.txt | grep -v "IgnoreThis\|IgnoreThat" | less
Run Code Online (Sandbox Code Playgroud)
但它很麻烦 - 每次我想添加另一个过滤器时,我都需要退出less并编辑命令行.一些滤波器相对复杂并且可以是多线的.
我想通过日志阅读一些方法来应用过滤器,以及在某处保存这些过滤器的方法.
有没有可以为我做这个的工具?我无法安装新软件,所以希望它已经安装好了 - 例如,less,vi,Python或Perl lib等等.
更改生成日志以生成更少的代码不是一种选择.
我的公司一直使用JIRA作为需求跟踪工具以及错误跟踪器,而且我们一直在一个项目上工作时工作得非常好.
我们现在有一个场景,我们有三个不同的项目提案,其要求部分重叠(例如,要求1适用于项目A和B,要求2适用于项目B和C等).我希望能够为每个要求输入一个JIRA问题,但这似乎不可能,因为JIRA问题和项目具有一对一的关系.
有没有人在JIRA中找到了这样做的方法,或者可能还有其他一些与JIRA集成的工具?
我想启动EC2 Windows实例,上传EXEecutable并执行它(所有这些都是自动化的,这很重要)
到目前为止,我能够以编程方式启动EC2 Windows实例并获取其参数(密码/ IP),现在我想找到一种方法来上传这个可执行文件(从我的Windows机器或我的其他EC2 linux实例)并运行它.
我考虑过启动RDP连接并使用宏软件上传和执行文件,但根据以前的经验,这是一个糟糕/脆弱的方法,至少可以说.
我还想过将这个EXE上传到服务器,然后在Windows上做这样的事情:
wget http://www.domain.com/my-file.exe
Run Code Online (Sandbox Code Playgroud)
除了Windows 没有 wget!
所以我的问题是:有没有办法在EC2 Windows实例中以编程方式上传和执行EXEcutable?
我有一个使用亚马逊提供的Fedora 8 64位AMI的Amazon EC2实例,我想升级到Fedora 10.
我尝试通过运行"yum update"来升级内核和所有软件包.这似乎工作正常,我看到我现在安装了fc10内核,并且我所有已安装的软件包也已更新到Fedora 10版本.
但是,我也注意到仍然安装了fc8内核,当我重启我的映像时,它返回运行fc8内核,而不是fc10内核(我从"uname -a"的输出中推断出来).
我需要采取一些额外的步骤来使我的映像在fc10内核下启动,或者这是否可能?亚马逊文档没有找到对我有用的东西.
这是我在许多公司遇到的一个问题:质量保证团队应该向开发组织报告,还是等同于公司层次结构中的开发?
这是我遇到的问题 - 我需要每2小时触发一次作业构建,但前提是有一个git提交(如果没有活动则跳过).我可以单独解决它们但不确定如何一起解决它们 - 任何人都有任何好的想法?我能想出的唯一一个是每两个小时检查一次的cron作业,如果在那段时间内有一个git提交,则手动触发一个作业,但这看起来并不那么优雅.
任何好的想法都赞赏.
我的公司有一个用C语言编写的Linux软件产品,用autotools构建并通过二进制包分发.要创建二进制文件,我们首先生成源RPM,然后从SRPM编译源代码.
目前我们只提供64位Fedora 10的RPM软件包,但是我们想开始为多个Linux发行版提供软件包 - 32位和64位 - 以及每个发行版的不同版本(例如Fedora 11)作为Fedora 10).
我听说为多种Linux风格生成构建的最佳方法是使用单个构建服务器,并为要构建的每个软件包使用不同的chrooted环境.有没有人有一个很好的资源可以更详细地解释这一点,也许有使用这种构建机制的众所周知的项目的例子,或者有更好的替代方案来实现相同的目标?
我在过去的工作中一直是JIRA和Bugzilla管理员,并且经常有用户要求每个问题有多个受让人的能力.
我知道这在JIRA中是可能的,但在我看来它永远不会有意义; 一个问题应该代表一项工作,只有一个人可以完成一项工作(至少在软件方面,我从来没有使用问题跟踪器为一个2人雪橇队;-))一大块工作将显然涉及不止一个人,但我认为在这种情况下应将其拆分为子任务以允许准确的状态报告.
有没有人有任何有多个受让人有效的用例?
对不起,如果这是一个显而易见的问题,但我发现很少有人在网上引用...
我正在使用我们的业务合作伙伴用C编写的API,并将其作为.so二进制文件提供给我们,构建在Fedora 11上.我们已经在Fedora 11开发机器上测试了API,没有任何问题.但是,当我尝试链接客户目标平台上的API(恰好是SuSE Enterprise 10.2)时,我收到"文件格式无法识别"错误.
同样属于binutils包的命令,例如objdump或nm,给出了相同的文件格式错误."file"命令显示我:
ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
Run Code Online (Sandbox Code Playgroud)
并且"ldd"命令显示:
ldd: warning: you do not have execution permission for `./libuscuavactivity.so.1.1'
./libuscuavactivity.so.1.1: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./libuscuavactivity.so.1.1)
[dependent library list]
Run Code Online (Sandbox Code Playgroud)
我猜这是由于两个平台上的C库之间不兼容,问题是代码是针对新版本的glibc等而不是SuSE 10.2上提供的.我发布这个问题是因为有一种方法可以在我们的合作伙伴的Fedora 11平台上编译代码,这样它也可以在SuSE 10.2上运行.