我创建了一个小型Bash脚本来执行MySQL数据转储。由于转储可能相当大,因此我将该进程置于后台,然后等待出现错误或日志显示在文件系统中。我有以下代码:将STDERR重定向到Bash文件中会导致即使没有错误也会创建文件。为什么?
mysqldump main_db > /loc/to/dmp/file.sql 2>/loc/to/error/log/file.log &
的问题是,我得到一个“/loc/to/error/log/file.log”文件的0大小(我假设意味着没有真正的错误)时,有时即使没有错误,该命令也会运行,这会杀死进程。
我不知道为什么STDERR会在没有数据写入时写入文件。这是因为&
后台进程?
好吧,我不知道怎么STDERR工作,以为检查一0的文件大小将成为更深层次问题的创可贴。 – null 2009-08-10 18:21:32
问题不在于“STDERR如何工作”。这是shell重定向的工作原理。 – 2009-08-10 18:24:42