相关疑难解决方法(0)

如何使用Bash将stdout和stderr重定向并附加到文件中?

要将stdout重定向到Bash中的截断文件,我知道要使用:

cmd > file.txt
Run Code Online (Sandbox Code Playgroud)

要在Bash中重定向stdout,追加到文件,我知道要使用:

cmd >> file.txt
Run Code Online (Sandbox Code Playgroud)

要将stdoutstderr重定向到截断的文件,我知道要使用:

cmd &> file.txt
Run Code Online (Sandbox Code Playgroud)

如何重定向附加到文件的stdoutstderrcmd &>> file.txt不适合我.

linux bash redirect pipe stream

1440
推荐指数
8
解决办法
70万
查看次数

如何在docker容器中运行cron作业?

我试图在一个调用shell脚本的docker容器中运行一个cronjob.

昨天我一直在网上搜索和堆栈溢出,但我真的找不到一个有效的解决方案.
我怎样才能做到这一点?

编辑:

我创建了一个(注释的)github存储库,其中包含一个工作的docker cron容器,它以给定的时间间隔调用shell脚本.

cron containers sh docker

215
推荐指数
18
解决办法
22万
查看次数

如何记录cron作业?

我想知道如何确切地看到cron作业在每次执行时都在做什么.日志文件位于何处?或者我可以将输出发送到我的电子邮件吗?我已经设置了电子邮件地址,以便在cron作业运行时发送日志,但我还没有收到任何信息.

cron logging

202
推荐指数
7
解决办法
24万
查看次数

什么是/ dev/null 2>&1?

我在/etc/cron.daily/apf中找到了这段代码

#!/bin/bash  
/etc/apf/apf -f >> /dev/null 2>&1  
/etc/apf/apf -s >> /dev/null 2>&1  
Run Code Online (Sandbox Code Playgroud)

它正在刷新并重新加载防火墙.
我不明白这一>> /dev/null 2>&1部分.

在cron中有这个的目的是什么?它覆盖了我的防火墙规则.我可以安全地删除这个cron作业吗?

syntax shell posix io-redirection

199
推荐指数
6
解决办法
23万
查看次数

PHP:为什么exec()不返回输出?

我正在编写一个PHP脚本,用于检查Linux shell命令的网络连接,ping并使用PHP调用它exec():

<?php


// Bad IP domain for testing.
$domain_bad = "lksjdflksjdf.com";

$ip_address = $domain_bad;

exec("ping -c 1 $domain_bad", $output, $return_var);

var_dump($return_var);
echo "return_var is: $return_var" . "\n";
var_dump($output);


exit;
?>
Run Code Online (Sandbox Code Playgroud)

我没有从ping获取错误消息的输出,$output这是我所期待的:

$ php try.php
ping: unknown host lksjdflksjdf.com
int(2)
return_var is: 2
array(0) {
}
Run Code Online (Sandbox Code Playgroud)

如果域是一个好的域,例如yahoo.com,那么$output在数组中有ping的输出.但如果它是一个错误,例如'ping: unknown host lksjdflksjdf.com'它没有返回到$output数组.

为什么会发生这种情况并且有更好的方法来做到这一点?

php ping exec

45
推荐指数
2
解决办法
8万
查看次数

在bash中做什么&>做什么?

我正在查看预提交钩子,并发现了以下行,因为我想知道为什么我1在提交后总是在我的目录中调用一个empy文件.

git status 2&>1 > /dev/null
Run Code Online (Sandbox Code Playgroud)

我认为其目的是写下以下内容,并对其进行了更正.

git status 2>&1 > /dev/null
Run Code Online (Sandbox Code Playgroud)

但是,我很好奇下面的语法完全是什么,所以我查看了手册页.

git status 2&>1
Run Code Online (Sandbox Code Playgroud)

这是手册页.

  Redirecting Standard Output and Standard Error
      This  construct allows both the standard output (file descriptor 1) and
      the standard error output (file descriptor 2) to be redirected  to  the
      file whose name is the expansion of word.

      There  are  two  formats  for  redirecting standard output and standard
      error:

             &>word
      and
             >&word

      Of the two forms, the first is preferred.  This is …
Run Code Online (Sandbox Code Playgroud)

bash

43
推荐指数
3
解决办法
3万
查看次数

在Bash中捕获stdout和stderr

我知道这个语法

var=`myscript.sh`
Run Code Online (Sandbox Code Playgroud)

要么

var=$(myscript.sh)
Run Code Online (Sandbox Code Playgroud)

将捕获结果(stdout)myscript.sh转化为var.我可以重定向stderrstdout,如果我想同时捕获.如何将它们中的每一个保存为单独的变量?

我在这里的用例是如果返回代码非零,我想要回显stderr并禁止其他方式.可能有其他方法可以做到这一点,但这种方法似乎可行,如果它实际上是可能的.

bash stdout pipe stream stderr

41
推荐指数
5
解决办法
5万
查看次数

在这个bash命令1>&2中,&符号表示什么

快速的,2>&1将stderr重定向到stdout,但是&符号是什么意思?我知道如果我们将2 > 1它输出到一个名为的文件1,那么&符号会做什么?

bash scripting

36
推荐指数
5
解决办法
1万
查看次数

如何将时间戳添加到STDERR重定向

在bash/ksh中我们可以为STDERR重定向添加时间戳吗?

例如myscript.sh 2> error.log

我想在日志上写一个时间戳.

shell scripting

34
推荐指数
4
解决办法
3万
查看次数

PowerShell中2>&1的含义是什么?

我有以下脚本:

if( $timeout -ne $null )
{
    & $var$timeout 2>&1 > $logDir\$logName
}
else
{
    & $var2>&1 >  $logDir\$logName
}
Run Code Online (Sandbox Code Playgroud)

我很好奇是什么2>&1; 或者,它代表什么.我不知道它叫什么,否则,我会查一查.

powershell

23
推荐指数
2
解决办法
2万
查看次数