我遇到了一个问题 ,我最终帮忙的脚本是通过ssh执行一个mysqldump到Windows机器,当从cron调用时,文件变为空白。 经过大量的调查,我发现这是一个错误,提出的解决方法是使用script命令来捕获输出。
不幸的是,当通过cron调度script命令本身似乎performance出稍微不同的行为。 如果我写这样一个bash脚本:
rm script.log script -q -c "ssh user@host -p portnum \"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe\" --login-path=local --routines --single-transaction db_name" script.log > /dev/null ls -lh script.log
使用screen命令和ssh执行一个mysqldump,然后执行该文件的ls -lh 。
如果我自己运行这个脚本,我可以像预期的那样看到文件N MB很大。
如果我通过cron调用这个脚本,脚本运行的时候最终会变成零字节,但是如果我自己马上就可以看到它现在又变成NMB了 – 这就好像屏幕的分叉行为有不同的performance在一个ttyless cron下,当脚本结束时,屏幕命令仍然运行,如果通过cron运行,但是屏幕命令在交互运行时在ls之前结束。
有没有人了解发生了什么比我有什么build议如何防止或周围的工作?