我有一个由 3rd 方软件生成的文本文件,作为构建过程的一部分。我想替换一个特定的行 - 在我的例子中是第 6 行。我怎样才能在我的 bash 脚本中做到这一点?
我怀疑 sed 是我的朋友,但我现在很困惑。
如果这很重要,我正在使用 Mac OS X 10.6。
我写了一个 munin-plugin 来计算 lighttpd 的 http-statuscodes。剧本:
#!/bin/bash
######################################
# Munin-Script: Lighttpd-Statuscodes #
######################################
##Config
# path to lighttpd access.log
LIGHTTPD_ACCESS_LOG_PATH="/var/log/lighttpd/access.log"
# rows to parse in logfile (higher value incrase time to run plugin. if value to low you may get bad counting)
LOG_ROWS="200000"
#
#munin
case $1 in
autoconf) # check config
AVAILABLE=`ls $LIGHTTPD_ACCESS_LOG_PATH`
if [ "$AVAILABLE" = "$LIGHTTPD_ACCESS_LOG_PATH" ]; then
echo "yes"
else
echo "No: "$AVAILABLE
echo "Please check your config!"
fi
exit 0;;
config) # graph config
cat …Run Code Online (Sandbox Code Playgroud) 我已经从 StackOverflow 复制了这个问题...
我已经从 EPEL 存储库 (0.5.9) 安装了 incron(在你问之前;是的,我也尝试下载源代码并在本地编译(0.5.10);相同的结果)并试图在我的 CentOS 6.4 上设置一个进程(最终)我在本地 Ubuntu 12.04 机器上成功原型化的虚拟框(包括incron在 Ubuntu 下完美运行的过程):
前面的一些信息:
visudo解决一些权限问题......我曾尝试应用此处所描述的 incron 策略http://blog.siphos.be/2013/05/a-selinux-policy-for-incron-finishing-up/但我一直收到
libsepol.policydb_read: policydb magic number 0x696c6f70 does not match expected magic number 0xf97cff8c or 0xf97cff8d
semodule_package: Error while reading policy module from incron.te
当我尝试使用 semodule_package
我试图caller.sh通过这样做在脚本本身和前脚本中定义环境,我能够env > /tmp/envfile.txt表明脚本正在sudo env(如我预期的那样)的克隆中运行,但是我仍然没有从我的脚本中得到任何输出,它应该在它的输入文件或它的任何日志上做的工作......
应该是权限吧?(我离chmod -r 777在根文件系统上做这件事还有一天的时间;))
在 Ubuntu 12.04 下,执行sudo incrotab -e和输入的简单操作/tmp/ IN_CREATE,IN_NO_LOOP …
set -x或set -v打印每个执行的命令。
如何在命令开始执行时打印命令?
我正在尝试为应用程序编写服务脚本。所以我可以这样控制它:
./myscript.sh start|stop|status
Run Code Online (Sandbox Code Playgroud)
启动时pid.file创建进程 ID,并基于它我可以检查状态并停止进程。在停止命令中我删除了pid.file- 没关系。
但是,如果应用程序以异常方式崩溃 - 关闭电源等,则pid.file不会删除,我需要手动删除它。
如何在脚本中正确处理这种异常情况?
在 Unix 中分隔常规命令是将分号放在最后,如下所示:
cd /path/to/file;./someExecutable;
Run Code Online (Sandbox Code Playgroud)
但它似乎不适用于这样的命令:
./myProgram1 > /dev/null &
./myProgram2 > /dev/null &
=>./myProgram1 > /dev/null &;./myProgram2 > /dev/null &;
Run Code Online (Sandbox Code Playgroud)
有没有办法将这些命令分开?
另外,如果我将粘贴复制到命令提示符,以下两种情况是否相同?谢谢。
cd /path/to/file;./someExecutable;
cd /path/to/file;
./someExecutable;
Run Code Online (Sandbox Code Playgroud) 在脚本中,我希望能够轻松地将 IP 地址写入某个地方,所以我想使用带有反引号的 dig(或类似命令)。
然而,我已经能够提出 wrt dig 参数的最简单的输出是
> dig -t A +noall +answer www.google.com
www.google.com. 300 IN A 173.194.66.106
www.google.com. 300 IN A 173.194.66.104
Run Code Online (Sandbox Code Playgroud)
有什么办法(额外的参数,不同的工具而不是挖掘?)来摆脱 IP 地址之外的垃圾?(并且请不要告诉我使用 sed。)
谢谢
我想知道,是否可以从 Linux 系统上的 shell 脚本访问 Windows 文件?我想要做的是在我的 Linux 系统中运行一个 shell 脚本,它将访问远程 Windows 系统的文件,读取它们并操作它们。忘记文件和文件夹权限。
是否可以使用 Linux shell 脚本(或 perl 脚本)来做到这一点?
我写了一个shell脚本来同时启动三个后台进程。在 shell 脚本中,我试图等待所有孩子完成他们的工作,然后父工作终止。但是,出于某种原因,我看到睡眠过程永远不会醒来。
echo "Starting $1 instances" >> $logfile
for i in `seq 1 $1`
do
/usr/bin/php index.php name&
done
echo "Waiting for all $l instances to complete \n" >> $logfile
wait
echo "All $instances scripts completed" >> $logfile
Run Code Online (Sandbox Code Playgroud) 我想在每个月的倒数第二天安排一项任务。我已经阅读了这篇关于 shell 脚本执行的好文章。我还看到您可以使用“L”来表示月份的最后一天,但我使用的是CentOS 并且不能使用“L”构造。
我想在每个月的倒数第二天晚上 11 点运行任务。我希望构造一个类似于:
0 23 27-30 * * [ "$(date +%d -d tomorrow" = "L" ] && $HOME/path/to/script
Run Code Online (Sandbox Code Playgroud)
知道我不能用 L 来代表一个月的最后一天,我如何使用这个逻辑来安排我的 Cron 工作?