我有一台Debian机器和一个谷歌硬盘同步工具gdrive
https://github.com/odeke-em/drive#traversal-depth
#!/bin/sh
PATH=$PATH:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
cd /media/hdd/google_drive
date=`date +'%Y%m%d'`
echo "--- "$date" ---" >> /var/log/drive_sync.log
drive pull -no-prompt >> /var/log/drive_sync.log
这个脚本工作正常,除了一个问题。它只记录一些命令输出。以下是日志文件的示例。
--- 20161109 ---
Resolving...
--- 20161110 ---
Resolving...
--- 20161111 ---
Resolving...
--- 20161112 ---
Resolving...
Everything is up-to-date.
--- 20161113 ---
Resolving...
Everything is up-to-date.
--- 20161114 ---
Resolving...
Everything is up-to-date.
--- 20161115 ---
Resolving...
Everything is up-to-date.
--- 20161116 ---
Resolving...
Everything is up-to-date.
问题是,当从提示符运行时,它不会记录以下信息。
user@name-pc:~/google_drive $ drive pull -no-prompt
Resolving...
+ /#transfer/test.txt
M /documents/downloads.xlsx
Addition count 1
Modification count 1 src: 10.96KB dest: 10.96KB
因此,您可以看到有关同步文件的信息并没有在日志中结束,只有“解析…”行在日志中终止,为什么文件计数或“+/#transfer/test.txt”和“M/documents/downloads.xlsx”行没有结束。
所以我的问题是,为什么输出重定向不起作用,不能将屏幕上的所有文本重定向到文件中,而只是我在日志中显示的行。
任何关于如何记录命令的所有信息输出的建议都会有所帮助。
我尝试了各种stderr和stdout重定向,tee命令,但从未在日志文件中结束整个输出。