Shell执行脚本并输出日志文件的方法
shell 错误输出重定向到标准输出
./tmp/test.sh > /tmp/test.log 2>&1
>和<是文件重定向符。那么1和2是什么?
shell中每个进程都和三个系统文件相关联
标准输入stdin
标准输出stdout
标准错误stderr
三个系统文件的文件描述符分别为0,1和2。
所以这里2>&1的意思就是将标准错误也输出到标准输出当中。
下面通过一个例子来展示2>&1有什么作用:
$ cat test.sh t date
test.sh中包含两个命令,其中t是一个不存在的命令,执行会报错,默认情况下,错误会输出到stderr。date则能正确执行,并且输出时间信息,默认输出到stdout。
标准输出重定向到log文件中,标准错误打印在屏幕上
./test.sh > test1.log /test.sh: line 1: t: command not found $ cat test1.log Tue Oct 9 20:51:50 CST 2007
可以看到,date的执行结果被重定向到log文件中了,而t无法执行的错误则只打印在屏幕上。标准输处和标准错误重定向到同一log文件中
$ ./test.sh > test2.log 2>&1 $ cat test2.log ./test.sh: line 1: t: command not found Tue Oct 9 20:53:44 CST 2007
这次,stderr和stdout的内容都被重定向到log文件中了。
实际上, >就相当于1>也就是重定向标准输出,不包括标准错误。通过2>&1,就将标准错误重定向到标准输出了(stderr已作为stdout的副本),那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。
标准输处和标准错误重定向到不同log文件中
如果只想重定向标准错误到文件中,则可以使用2> file。
sh mr_add_test.sh 1>log.log 2>log_err.log
如何将shell脚本的全部执行结果记入一个log文件
./script.sh >>logfile 2>&1
执行脚本script.sh时将错误输出2以及标准输出1都一起以附加写方式导入logfile文件。
即使多次执行脚本,之前的log也仍然存在。
到此这篇关于Shell执行脚本并输出日志文件的方法的文章就介绍到这了,更多相关Shell执行脚本内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Spark-shell批量命令执行脚本的方法
批量执行spark-shell命令,并指定提交参数 #!/bin/bash source /etc/profile exec $SPARK_HOME/bin/spark-shell --queue tv --name spark-sql-test --executor-cores 8 --executor-memory 8g --num-executors 8 --conf spark.cleaner.ttl=240000 <<!EOF import org.apache.spark.sql.
-
在linux shell脚本中root切换到普通用户执行脚本或命令的方法
需求: 安装deb包,设置程序安装后启动,不需要root权限启动程序 | 不能用root权限启动 其他开机启动选项 方法:root临时降低权限 secUser=`who am i | awk '{print $1}'` #echo $secUser su $secUser -c <指令> > /dev/null 2>&1 & #这一条命令的执行权限是临时的,只在本条语句起作用 id -u # 结果为0,还是root用户权限 附: su --help -c, --co
-
详解shell中source、sh、bash、./执行脚本的区别
1.source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用命令"."来替代. 如:source .bash_profile . .bash_profile两者等效. source(或点)命令通常用于重新执行刚修改的初始化文档. source命令(从 C Shell 而来)是bash shell的内置命令. 点命令,就是个点符号,(从Bourne
-
shell之定时周期性执行脚本的方法示例
示例 1.编写测试脚本脚本 time .sh $ cat time.sh #! /bin/bash echo $(date +%s) >> /home/ocean/out.txt 保存完毕后记得给予权限 chmod 777 test.sh 2.添加定时任务 $ crontab -e no crontab for ocean - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/n
-
shell将脚本输出结果记录到日志文件的实现
使用tee命令: sh portal/main.sh |tee log.txt 获取脚本父类路径 cmddir="`dirname $0`" 以上这篇shell将脚本输出结果记录到日志文件的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
PowerShell默认参数$PSDefaultParameterValues结合Out-File输出到日志文件
输出log是一个永恒的话题,什么tracelistener,net4log,nlog,windows中自带的eventlog,之前在自动重定向PowerShell控制台输出到文件 也算.其实借助于PowerShell 3.0以后的PowerShell默认参数$PSDefaultParameterValues,可以让Out-File,命令也变成也简易的Log神器. 复制代码 代码如下: $PSDefaultParameterValues['Out-File:FilePath'] = 'mylog.
-
Shell执行脚本并输出日志文件的方法
shell 错误输出重定向到标准输出 ./tmp/test.sh > /tmp/test.log 2>&1 >和<是文件重定向符.那么1和2是什么? shell中每个进程都和三个系统文件相关联标准输入stdin标准输出stdout标准错误stderr三个系统文件的文件描述符分别为0,1和2.所以这里2>&1的意思就是将标准错误也输出到标准输出当中. 下面通过一个例子来展示2>&1有什么作用: $ cat test.sh t date test.s
-
Node.js利用console输出日志文件的方法示例
通常我们在写Node.js程序时,都习惯使用console.log打印日志信息,但这也仅限于控制台输出,有时候我们需要将信息输出到日志文件中,实际上利用console也可以达到这个目的的,今天就来简单介绍一下. 我们首先创建如下文件: // index.js let fs = require('fs'); let options = { flags: 'a', // append模式 encoding: 'utf8', // utf8编码 }; let stdout = fs.createWri
-
Python同时向控制台和文件输出日志logging的方法
本文实例讲述了Python同时向控制台和文件输出日志logging的方法.分享给大家供大家参考.具体如下: python提供了非常方便的日志模块,可实现同时向控制台和文件输出日志的功能. #-*- coding:utf-8 -*- import logging # 配置日志信息 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt
-
python 捕获 shell/bash 脚本的输出结果实例
#!/usr/bin/python ## get subprocess module import subprocess ## call date command ## p = subprocess.Popen("date", stdout=subprocess.PIPE, shell=True) ## Talk with date command i.e. read data from stdout and stderr. Store this info in tuple #
-
python 实现创建文件夹和创建日志文件的方法
一.实现创建文件夹和日志 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: nulige import os import datetime #获取系统时间 log_path_suffix = datetime.datetime.now().strftime('%Y-%m-%d ') #创建文件夹 folder_name = '\log' root_directory = 'D:\python\disk_monitor' try: os
-
Node.js 在本地生成日志文件的方法
平常都使用console来打印 node 脚本执行时需要看到的信息,但这些信息也就只能在控制台查看.假如你希望将打印的信息输出到日志(log)文件查看的话,那就往下看看吧. 1.前言 期望: 每次运行脚本时,生成log日志存储到本地 每次执行脚本,之前日志内容清空 需要了解的知识点: fs new console.Console 2.什么是 fs 使用 node.js 对日志进行存储,就一定会对本地文件的增删改查,那么我们需要用到fs. 如果你写过 node,想必你应该见过它fs,fs全称为文件
-
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
本文实例讲述了Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法.分享给大家供大家参考,具体如下: phpunit下载网站 http://www.phpunit.cn/ 一.安装PHPUnit 1.选择版本 我用的是php版本是5.6.25 所以我选择的是PHPUnit 5.7 2.安装过程 ① 为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin ② 将 ;C:\bin 附加到 PATH 环境变量中 [将 php的目录 ;E:\wamp64\bin
-
mysql查询结果输出到文件的方法
mysql查询结果导出/输出/写入到文件 方法一: 直接执行命令: mysql> select count(1) from table into outfile '/tmp/test.xls'; Query OK, 31 rows affected (0.00 sec) 在目录/tmp/下会产生文件test.xls 遇到的问题: mysql> select count(1) from table into outfile '/data/test.xls'; 报错: ERROR 1 (HY
-
Python3.6笔记之将程序运行结果输出到文件的方法
新建py文件,在里面写入Python代码,代码的功能是打印10次"Hello!",将代码文件保存到桌面上: 在命令行中运行Python脚本,并将运行结果保存到文件中: (在此之前,要确保设置了环境变量) 首先,来到Python脚本所在目录: 输入: 其中getHtml.py是已经写好的Python脚本,html.txt是目标文件,也就是要把脚本运行结果输出到html.txt中 打开html.txt文件,可以看到里面已经有内容了: 以上这篇Python3.6笔记之将程序运行结果输出到文件
-
VBS定时执行idea程序的Testng文件的方法
背景: Windows环境cmd命令行执行TestNG文件,会报一些jar包路径问题,所以改用vbs打开idea程序的通过点击快捷键执行testng.xml文件. vbs代码如下: '第一部分:定义变量 Dim RunTime Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") '第二部分:输入等待的分钟数(默认:180分钟),等待结束后,会执行第三部分 RunTime = InputBox("P
随机推荐
- 使用Angular.js实现简单的购物车功能
- 基于python实现的抓取腾讯视频所有电影的爬虫
- PHP实现通过正则表达式替换回调的内容标签
- 使用工具 plsqldev将Excel导入Oracle数据库
- 浅谈python中的实例方法、类方法和静态方法
- Android 动态添加view或item并获取数据的实例
- linux下mysql5.7.17最新稳定版本安装教程
- php 获取完整url地址
- 使用GruntJS构建Web程序之构建篇
- javascript实现随机显示星星特效
- JQuery中serialize()、serializeArray()和param()方法示例介绍
- percona-toolkit之pt-kill 杀掉mysql查询或连接的方法
- JS完成代码前最好对其做5件事
- Nginx服务器中配置404错误页面时一些值得注意的地方
- python自动发邮件库yagmail的示例代码
- angularjs的单选框+ng-repeat的实现方法
- IntelliJ IDEA使用tomcat和jetty配置详解
- 浅析Python函数式编程
- 使用Vue组件实现一个简单弹窗效果
- Python Django框架url反向解析实现动态生成对应的url链接示例