一般情况下,我们执行某一个脚本或者任务时,会有交互信息,例如 MapReduce 计算、Hbase 入库等。但是有时候我们不是很关心交互信息,希望它可以一直执行,中间结果可以保存在一个日志文件里面。怎么办呢,下面有几种方式可以解决这个问题。
定义
脚本的名称及路径为:
/home/test/test.sh
执行中间结果存储文件为:
/home/test/output.log
登录环境:
SecureCRT远程登录
方式一:crontab
操作:
1.在终端输入:crontab -e
2.打开crontab配置文件后,写入语句:
00 01 * * * sh /home/test/test/sh [参数] >> /home/test/output.log 2>&1
说明:
00 01 * * * 表示执行的时间设定,此处表示每日01:00开始执行
sh /home/test/test/sh [参数] 表示要执行的脚本
/home/test/output.log 表示中间结果的输出位置
方式二:nohup
操作:
1.在终端中输入:
nohup sh /home/test/test/sh [参数] >> /home/test/output.log 2>&1
说明:
sh /home/test/test/sh [参数] 表示要执行的脚本
/home/test/output.log 表示中间结果的输出位置
注意:1.操作时,再终端输入上述命令后,终端可能不会返回可输入命令的状态,此时直接关闭界面窗口即可,不需要按Ctrl+C来中 断。
2.如果想看到当前执行的状态,可以输入:
tail -f /home/test/output.log
会自动显示当前执行的状态信息。
方式三:自搭建Job任务调度系统
该系统的功能与 crontab 类似:
相似点:配置好相关脚本执行语句和执行时间,便可定时执行;
不同点:不需要指定中间结果输出位置,会直接保存在该系统上,方便查阅。