shell脚本在后台运行以及日志重定向输出

lishaokang 2020-06-12

后台运行命令

在命令行后加上 &,表示进程到后台中执行,如:cmd &

日志输出重定向

如:cmd > out.log &

Linux默认定义两个变量:1和2;

  • 1 表示标准输出
  • 2 表示错误输出

如 cmd 1 > info.log 2 > error.log &

其中 cmd > out.log & 和 cmd 1 > out.log & 是一样的,如果想忽略某个输入,则输出到 /dev/null 设备即可

如 cmd 1 > info.log 2 > /dev/null &

如果想将2中的日志和1中的日志写入同一个文件中,则命令如下:

cmd 1 > info.log 2 > &1 &

其中2 > &1的&符号表示错误输出重定向到标准输出

但是这种后台xshell窗口在退出ssh登录后,进程就会自动结束,如果想继续运行,则需要在命令前加上 nohup 命令

如 nohup cmd 1 > info.log 2>&1 &

延伸:

grep 命令

grep "mm" :筛选包含mm字段的内容

grep "mm\|nn" :筛选包含mm或者nn字段的内容

grep -v "mm" :排除包含mm字段的内容

grep -v "mm\|nn":排除包含mm或者nn字段的内容

相关推荐