在做批量实验室,例如跑批量MR的作业,我们会写好shell脚本,然后启动脚本,等所有作业执行完再去看结果,但是这些执行时的信息如何保存下来到文件中呢?下面这个命令可以完成这个任务。
sh batchjob.sh 2>&1 | tee mylog.log
其中sh batchjob.sh:表示要执行的shell脚步;0,1,2:在linux分别表示标准输入、标准输出和标准错误信息输出。
下面来总结下重定向问题。
输入输出重定向之:'<' and '>'
'<' and '>'分别用来支持linux中的输入输出重定向,其中'<'支持输入重定向,'>'支持输出重定向。
1. '<':重定向输入
sh test.sh < hadoop-hadoop-jobtracker-brix-00.out,将hadoop-hadoop-jobtracker-brix-00.out的内容作为test.sh的输入
2. '>':将内容全局覆盖式的加入文件,相当于删除该文件并重新建立该文件,再写入的效果
ls * > test.txt ,将ls * 的所有信息输出到文件test.txt中
3. '>!':如果存在则覆盖
4. '>&':执行时屏幕上所产生的任何信息写入指定的文件中
5. '>>':追加到文件中
6. '>>&':屏幕上的信息追加到文件中
标准输入输出
在 Linux 系统中:标准输入(stdin)默认为键盘输入;标准输出(stdout)默认为屏幕输出;标准错误输出(stderr)默认也是输出到屏幕(上面的 std 表示 standard)。在 BASH 中使用这些概念时一般将标准输出表示为 1,将标准错误输出表示为 2。下面我们举例来说明如何使用他们,特别是标准输出和标准错误输出。
tee命令
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
转载自:http://www.cnblogs.com/gslyyq
补充:在执行makefile的时候,也可以写这样的命令。
make >build_output.txt 2>&1
本书共分五部分,详细介绍了
shell
编程技巧,各种UNIX
命令
及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合
Shell
编程人员学习、参考。
目 录
第一部分
shell
第1章
文件
安全与权限 1
1.1
文件
1
1.2
文件
类型 2
1.3 权限 2
1.4 改变权限位 4
1.4.1 符号模式 4
1.4.2 chmod
命令
举例 5
1.4.3 绝对模式 5
1.4.4 chmod
命令
的其他例子 6
1.4.5 可以选择使用符号模式或绝对模式 7
1.5 目录 7
1.6 suid/guid 7
1.6.1 为什么要使用suid/guid 8
1.6.2 设置suid/guid的例子 8
1.7 chown和chgrp 9
1.7.1 chown举例 9
1.7.2 chgrp举例 9
1.7.3 找出你所属于的用户组 9
1.7.4 找出其他用户所属于的组 10
1.8 umask 10
1.8.1 如何计算umask值 10
1.8.2 常用的umask值 11
1.9 符号链接 12
1.9.1 使用软链接来
保存
文件
的多个映像 12
1.9.2 符号链接举例 12
1.10 小结 13
第2章 使用find和xargs 14
2.1 find
命令
选项 14
2.1.1 使用name选项 15
2.1.2 使用perm选项 16
2.1.3 忽略某个目录 16
2.1.4 使用user和nouser选项 16
2.1.5 使用group和nogroup选项 16
2.1.6 按照更改时间查找
文件
17
2.1.7 查找比某个
文件
新或旧的
文件
17
2.1.8 使用type选项 17
2.1.9 使用size选项 18
2.1.10 使用depth选项 18
2.1.11 使用mount选项 18
2.1.12 使用cpio选项 18
2.1.13 使用exec或ok来执行
shell
命令
19
2.1.14 find
命令
的例子 20
2.2 xargs 20
2.3 小结 21
第3章 后台执行
命令
22
3.1 cron和crontab 22
3.1.1 crontab的域 22
3.1.2 crontab条目举例 23
3.1.3 crontab
命令
选项 23
3.1.4 创建一个新的crontab
文件
24
3.1.5 列出crontab
文件
24
3.1.6 编辑crontab
文件
24
3.1.7 删除crontab
文件
25
3.1.8 恢复丢失的crontab
文件
25
3.2 at
命令
25
3.2.1 使用at
命令
提交
命令
或脚本 26
3.2.2 列出所提交的作业 27
3.2.3 清除一个作业 27
3.3 &
命令
27
3.3.1 向后台提交
命令
28
3.3.2 用ps
命令
查看进程 28
3.3.3 杀死后台进程 28
3.4 nohup
命令
29
3.4.1 使用nohup
命令
提交作业 29
3.4.2 一次提交几个作业 29
3.5 小结 30
第4章
文件
名置换 31
4.1 使用* 31
4.2 使用? 32
4.3 使用[...]和[!...] 32
4.4 小结 33
第5章
shell
输入与
输出
34
5.1 echo 34
5.2 read 35
5.3 cat 37
5.4 管道 38
5.5 tee 39
5.6 标准输入、
输出
和错误 40
5.6.1 标准输入 40
5.6.2 标准
输出
40
5.6.3 标准错误 40
5.7
文件
重定向
40
5.7.1
重定向
标准
输出
41
5.7.2
重定向
标准输入 42
5.7.3
重定向
标准错误 42
5.8 结合使用标准
输出
和标准错误 43
5.9 合并标准
输出
和标准错误 43
5.10 exec 44
5.11 使用
文件
描述符 44
5.12 小结 45
第6章
命令
执行顺序 46
6.1 使用&& 46
6.2 使用|| 46
6.3 用()和{ }将
命令
结合在一起 47
6.4 小结 48
第二部分 文本过滤
第7章 正则表达式介绍 49
7.1 使用句点匹配单字符 50
7.2 在行首以^匹配字符串或字符序列 50
7.3 在行尾以$匹配字符串或字符 5
参考:https://cloud.videojj.com/help/docs/faq.html#id10
假设这里要训练的目标
文件
是gcn_res_cs.py。
1、将程序放到后台运行,将标准
输出
和错误
输出
写入到 .log
文件
中
nohup python gcn_res_cs.py > ./gcn_res_cs.log 2>&1 &
2、查看实时日志
中
的
输出
结果。
注意,在 Python 3
中
需要使用 print("", flush=True) 让日志实时的写到
文件
中
。
把你的
命令
后面加上 > log.txt 2>&1例如之前的
命令
是 python train.py,修改后就是python train.py >log.txt 2>&1然后去 log.txt 里面看
输出
就全部到 log.txt 了如何在
输出
同时查看运行过程?新建窗口vim log.txt就能看到。Bash
中
将 stderr 和 stdout
重定向
到一个fi...
详情地址:
Shell
文件
的输入
输出
| 小步教程本节实现从
文件
输入,
输出
到
文件
。准备数据
文件
data1.txt,其
中
内容为:xiaobuteach.com例1:从
文件
中
读取内容
<与
文件
名之间空隔可有可无。然后echo $name查看数据例2:往
文件
中
写内容
>与
文件
名之间空格可有可无。查看数据正确。例3:将
输出
与错误写到不同
文件
1>log.txt表示将正常内容写到log.txt
文件
2>err.txt表示将错误内容写到err.txt
文件
ll
命令
执行完后,并没有显示到显示器,而是
输出
到了文
目录1.
Shell
基础1.1
Shell
概述1.2
Shell
脚本的执行方法1.3 Bash的基本功能1.3.1 历史
命令
与
命令
补全1.3.2
命令
别名与常用快捷键1.3.3 输入
输出
重定向
1.3.4 多
命令
顺序执行与管道符1.3.5 通配符与其他特殊符号1.4 Bash的变量1.4.1 用户自定义变量1.4.2 环境变量1.4.3 位置参数变量1.4.4 预定义变量1.5 Bash的运算符1.5.1 数值运算与运算符1.5.2 变量测试与内容替换1.6 环境变量配置
文件
1.6.1 环境变量配置
文件
简介1.
在
linux
shell
中
,不同工具、程序间通过文本进行数据交互,即以文本作为输入、
输出
标准格式。文本成为公共的协议,使得整个
shell
成为一个开放式环境,这给文本数据的处理带来了很大的方便。例如通过
重定向
可以
保存
一个程序的
输出
到
文件
;通过管道(使用符号 | 表示),可以把一个程序(cat)的
输出
,作为另一个程序(echo)的输入。
在 Unix 或
Linux
系统上,你可以使用 > 或 >> 运算符将
shell
命令
的
输出
重定向
到
文件
。
例如,你可以使用以下
命令
将 ls
命令
的
输出
重定向
到
文件
list.txt:
ls > list.txt
expect_out(buffer)以及expect_out(0,string)及更多
输出
用法可以查看使用man expect去查看更多细节。:获取匹配
信息
匹配成功则执行expect后面的程序动作(检测由壳内进程发出的特定交互指令反馈字符串后向下执行):用于向进程发送字符串(从壳外向壳内进程发送一条字符串,换行符为确认结束)
命令
从用户接收消息,当用户输入ctrl+D时结束输入,循环同时结束。:交互程序开始后面跟
命令
或者指定程序(在壳内启动这个进程):在expect
中
多次匹配就需要用到。...
本文主要介绍了
Shell
执行脚本并
输出
日志
文件
的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
shell
错误
输出
重定向
到标准
输出
1>和&1的意思就是将标准错误也
输出
到标准
输出
当
中
。下面通过一个例子来展示2>&1有什么作用:123cat。
------------------------------------------------------------
sh batchjob.sh 2>&1 | tee mylog.log
ls * > test.txt
-------------------...