我需要一个显示“是”或“否”的class轮,无论grep是否find任何结果。 我玩过grep -c ,但没有成功。
我觉得这应该是一件简单的事情,但我很难找出答案。 我正在试图编写一个脚本来监视一个Apache日志文件,并采取一些具体的行动。 但是我应该如何去监视日志文件呢? 每当一个新的行被写入日志,我想要检查这个条目,看看它是否符合我正在寻找,如果是这样的x发生。 当我手动这样做时,我使用了cat或tail -f。 我不想每隔30秒通过cron运行脚本,并浏览整个日志(甚至是最后5行),找出自上次脚本运行后哪些行是新的,然后是如此的一些东西。 有没有办法只检查日志中的单个新条目?
用例简介: 我正在使用docker容器来运行我的gotesting,使用go test ./… docker go test ./… 这可以使用docker exec <container> /bin/sh -c "go test ./…"轻松实现。 不幸的是go test ./…运行所有子目录,我想排除一个(供应商目录)。 build议的解决scheme是使用以下命令: go test $(go list ./… | grep -v '<excluded>' ,不知怎的,这给我留下如下结果: docker run golang:1.6.2-alpine /bin/sh -c "go test " (我已经在run和exec中testing过了,但是它们可能使用相同的核心)。 当我使用docker exec -it <container_id> /bin/sh ssh进入容器并运行完全相同的命令时,它就像一个魅力。 看来执行shell命令通过docker exec / run不支持任何与$()嵌套的命令?
我写了一个简单的bash脚本来每天备份某些文件到备份挂载,并保留最近3天的备份。 这显然太简单了,因为偶尔会有一些奇怪的行为,这可以通过在公司完成之前执行第一个MV来解释。 这是脚本: #!/bin/bash mount /mnt/backups while [ ! -d /mnt/backups/dailyBackup-0 ] do echo "Backup mount not present, sleeping…" sleep 30 done rm -r /mnt/backups/dailyBackup-2 mv /mnt/backups/dailyBackup-1 /mnt/backups/dailyBackup-2 mv /mnt/backups/dailyBackup-0 /mnt/backups/dailyBackup-1 dirname="/mnt/backups/dailyBackup-0" mkdir $dirname cd / rsync -qr –stats root etc var $dirname umount /mnt/backups 虽然这很好,但有时候我最终还是会遇到以下情况,看起来像dailyBackup-1在dailyBackup-2被删除之前正在被移动。 如果发生了什么事,防止它的最好方法是什么? /mnt/backups/dailyBackup-0: total 0 drwxrwxrwx 1 root root 0 […]
我想检查一个文件是否像这样存在 [ -f /path/to/file/ ] 但是,我以普通用户的身份运行此命令,并且该文件由root拥有。 我怎样才能使用sudo来实现这一点。 sudo [ -f /path/to/file/ ]不起作用。
例如,我有一个日志文件有这个条目: [Wed Aug 08 11:39:41 2012] [error] [client 155.94.70.224] ModSecurity:[file“/etc/httpd/modsecurity.d/rules/base_rules/modsecurity_crs_20_protocol_violations.conf”] [line“271”] [ “标签”RULE_MATURITY / 5“] [标签”RULE_ACCURACY / 5“] [标签”RULE_ACCURACY / 7“] [tag” https://www.owasp.org/index.php/ModSecurity_CRS_RuleID-960020 “] [tag”PROTOCOL_VIOLATION / INVALID_HREQ“] [tag” http://www.bad-behavior.ioerror.us/文件/如何工作/ “]警告。 string匹配REQUEST_PROTOCOL中的“HTTP / 1.1”。 [hostname“webmail.white-art.co.uk”] [uri“/horde/themes/graphics/tree/plusonly.png”] [unique_id“UCJB7VveCGYAAG @ BHJgAAAAQ”] 我想提取所有以字符开始的string对[并且结束于] 。 我可以使用剪切或awk提取使用单个分隔符,但我需要提取开始[和结束]之间的string。 如何完成? 例如,我需要提取: “[标记”RULE_ACCURACY / 7“]” 和 “[严重性”通知“]” 从日志。 我find了一个解决scheme,首先我必须通过在每一行之后添加新行来爆炸日志] ,然后使用grep来search所需的string。 有没有更好的方法来做到这一点?
我正在尝试调整使用FIND命令find的所有文件(它们是目录及其子目录中的所有文件)。 我尝试了很多select,但每次都遇到不同的错误。 这是我的最后一次尝试: find /my/folder/ -name '*jpg' -exec 'mogrify -resize 900">"{}' \; 我尝试了很多其他人,但无济于事。 出了什么问题?
我在Ubuntu服务器(192.168.1.2,example.com)上安装了ircd-hybrid 。 我们使用#teamchannel在团队内沟通。 问题是:如何从example.com发送一些短消息到bash脚本的#teamchannel ? 例如example.com: Alert! The server is rebooting now example.com: Alert! The server is rebooting now 编辑: 我find了一个perl脚本 ,正是我所需要的。
如果要运行以下命令 cat * | grep DATABASE shell会吐出包含DATABASE这个词的*文件中的所有行。 还有什么办法可以吐出每一行都是什么文件? 我试图使用grep的-H选项,根据man说print the filename for each match但在我的shell,它只是说 (standard input):$DATABASE_FUNCTION = dothis();
所以我偶然发现了svn的颜色 ,认为这是我们所有的开发者都会喜欢的东西。 阅读我说的是把一些代码放到你的~/.bash_profile ,但是我想知道如何在服务器上全局地包含这个代码,所以这是每个人的默认设置。 是否有一些全球.bash_profile我可以添加到? 也许另一种方式?