首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shell脚本将所有输出转储到一个文件中。

问Shell脚本将所有输出转储到一个文件中。
EN

Stack Overflow用户
提问于 2014-02-11 08:53:02
回答 3查看 1.5K关注 0票数 1

shell脚本的内容如下:

代码语言:javascript
复制
date
cur_date=`date '+%Y-%m-%d'` 
cur_time=`date '+%Y-%m-%d %H %M %S'`
start_date='2014-01-01'  
end_date=`date '+%Y-%m-%d'`
FiveDaysBack=`date --date='-7 day' "+%Y-%m-%d"`

rm -f *.sql
mysqldump -h192.168.200.150 torr > torr1.sql &
mysqldump -h192.168.200.100 torr > torr2.sql &
...
...
...
wait && echo `date` complete.

我以以下方式运行这个脚本:

nohup etl.sh &

执行脚本将导致进入nohup.out文件的所有sql转储,而不是torr1.sql、torr2.sql et。因此,我得到一个巨大的nohup.out文件,其中我希望转储去torr.sql文件。

请注意,这个脚本所做的远不止这些,我并不是在寻找获得mysql转储的替代安排。我只想知道为什么mysqldump输出没有进入指定的文件,而是被定向到nohup.out。我想解决这个问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-14 06:19:21

好吧,这听起来会很愚蠢。

  1. 很抱歉没有粘贴整个命令沃尔特和菲尔申。也许这会有所帮助。
  2. 整个指挥部是:

代码语言:javascript
复制
mysqldump --insert-ignore --skip-add-drop-table --no-create-info --lock-tables=false -ucrbt_se -pcrbt_se -h10.2.2.150 blah master_backup --where "date(END_TIME)>='$FiveDays'" --result-file=torr1.sql 

而Nano正在把文字包裹起来。由于转储的大小很大,我从来没有等待看到MySQL在最后抛出的错误,它向命令指示了错误的参数。

浪费了2天。见鬼。

票数 0
EN

Stack Overflow用户

发布于 2014-02-11 09:42:33

再次回答:

我会用“屏幕”而不是“nohup”。这是一个更强大的解决方案,允许您重新访问您的活动终端,如果它是关闭的。有关讨论,请参见here或here。

票数 0
EN

Stack Overflow用户

发布于 2014-02-11 16:11:45

最后一行应该有两个字符:wait && echo $(date) complete.

这仍然不能回答你的问题。也许mysqldump写到stderr,或者您的etl.sh用stdout做了一些有趣的事情。

我用这个脚本重现了你的问题:

代码语言:javascript
复制
sleep 10
rm non_existing > stdout.txt

启动此脚本(我将其保存为rm_nothing.sh)

代码语言:javascript
复制
 nohup rm_nothing.sh

rm的输出没有出现在stdout.txt中。

请尝试添加2>&1

代码语言:javascript
复制
mysqldump -h192.168.200.150 torr > torr1.sql 2>&1 &
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21697079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档