我有一个问题,我的cron脚本不加载环境variables,所以我添加了以下行: #!/bin/sh bash /root/.bash_profile 这似乎没有效果,pathvariables没有正确设置。 我如何运行bash_profile脚本
我有一个支持奇怪“ssh”的设备。 它不支持密钥validation我的问题是我不知道如何喂它的用户名和密码(-l或用户@主机不工作)。 这样连接后请求login名和密码: zeratul@antioch:~$ ssh 1.2.3.4 Please login: user password : Login incorrect 是否有可能从shell脚本做到这一点,或者我可以忘记它? 提前致谢。
在Linux(Debian)上,如何在将命令的标准输出连接到第二个命令之前,将一个或多个命令的标准输出作为前缀? 这是使用sendmail邮寄命令的输出,如下所示: pflogsumm <args> | sendmail <address> 我不能用这种方式指定主题行,因为sendmail会从input的input中提取标题字段。 因此,我想使用sed前缀pflogsumm输出。 谢谢。 /大卫
有没有人写过自我监视脚本,可以分享它的解决方式? 我有一个路由器上的DD-WRT,并且只能创build一个启动脚本。 问题是不能运行。 如果我通过telnetlogin并手动启动,那么效果很好。 所以我需要添加一个cron规则来运行它,但是不能多运行一次。 我正在考虑使用: if [`ps | grep [c]ustom.sh` -gt 1]; then exit; else … fi 你知道还有其他的方法吗?
在我们经历了许多版本和托pipe平台的CMS上,我们只是遇到了一个重音的图像文件,它不会从它的url工作。 所以我打开盒子,试着重新命名。 但是,我无法弄清楚如何正确input名称。 例如,我知道,如果一个文件被称为my file.txt你会做mv my\ file.txt my_new_file.txt但你如何移动一个名为café.txt的文件? 最后,我用通配符做了mv caf*.txt cafe.txt但是我仍然想知道为什么这个重音图片不能起作用,以及在unix上处理它的正确方法是什么。
我想做ls | grep something ls | grep something , cd到一个列出的东西。 我试着用| 并search,但没有发现。 它使用xargs吗?
假设我们在Linux shell中运行两个程序,如下所示: who -r; date 我应该添加什么来获得一个线路输出?
我有一个每分钟运行一次的cron作业,但是如果find数据,可能需要很多分钟才能完成。 我需要告诉脚本的另一个实例是否从另一个实例运行。 为了使事情更有趣,我们使用不同的参数调用相同的脚本。例如: * * * * * /home/user/script.sh Dir1 > /tmp/logdir1.log * * * * * /home/user/script.sh Dir2 > /tmp/logdir2.log 我曾经testing过这样的东西: FORMAT="`basename $0` $1" OLDPID=`pgrep -f -o "${FORMAT}"` #grab the oldest copy of the PID matching this format echo $OLDPID:$$ If [ "$OLDPID" -eq "$$" ] …. 在我的testing中,这个效果很好,如果最老的PID与当前的不一样,那么还有另外一个正在运行。 但是,从cron运行时,进程会出现两次,所以最早的PID不是当前的: user 1094 0.0 0.0 8720 […]
在Bash中,我并不是为了解释为什么, echo $(hostname –fqdn)作品, echo $(id -un)不( id: –un: No such user )。 反引号给出了相同的结果。 使用这个符号是否有一些好的做法? id命令是否有这样一个特殊的使用方法? 下面有些细节看起来适用于其他系统: lsb_release -a :SUSE Linux Enterprise Server 11(x86_64), which id :/ usr / bin / id, id -un独自工作。
我正在开发一个用于监视状态的脚本,这样我就可以向NagiOS NSCA服务器发送OK状态消息(被动检查)。 我遇到的问题是我的bash脚本仍然发送消息,如果脚本grep函数不包括任何将触发消息发送。 脚本: variables rsysl='rsyslog' log='messages' variables中的命令 host=$(hostname) monstat=$(monit status|grep -C 1 '$rsysl') nsca_status=$(echo -e "$host\t$rsysl\t0\tOK" | /usr/sbin/send_nsca -H mon.lv.lan -c /etc/send_nsca.cfg) 监视状态命令 # Postfix check $monstat 消息发送function,你可以看到它只应发送消息时, 状态等于没有运行 , 不可访问 if [ "status" == "not running" ] && [ "status" == "not accessible" ]; then $nsca_status else : fi grep输出(在实际情况下,消息发送命令必须匹配运行和可访问 : # monit […]