我有一台Debian机器和一个谷歌驱动器同步工具gdrive https://github.com/odeke-em/drive#traversal-depth
Google同步工作正常,但该命令仅在从提示符执行时才会同步。所以我创建了一个在cron中运行的同步脚本
#!/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命令,但从未将整个输出结果记录在日志文件中。
答案 0 :(得分:0)
答案是脚本命令:
script -q -c "drive pull --no-prompt" -a /var/log/drive_sync.log