我正在运行这个命令行:
mysql -h $dbHost -u $dbUser --password=$dbPasswd -N -B -e \
"use cms; select uri from file_managed;" | grep public: | sed \
's/public:\/\//\/amk_aco_data\/cms\//g' | xargs -d "\n" tar -czvf /tmp/cmspublicfile.tgz
到上周为止,它一直运行良好。但是现在,归档文件里仅有300个文件,而不是原来的约2,000个文件。 如果我单独运行并将SQL查询保存到文件中:
mysql -h $dbHost -u $dbUser --password=$dbPasswd -N -B -e \
"use cms; select uri from file_managed;" | grep public: | sed \
's/public:\/\//\/amk_aco_data\/cms\//g' > files.toarchive
然后
tar -T files.toarchive -czvf /tmp/cmspublicfile.tgz,
按照预期运行,我在档案中获得了大约2k个文件。我猜问题与xargs有关,但我不知道为什么它停止工作了。
一些解释:SQL查询打印出文件URL的列表。
有人能给我任何建议,应该检查什么吗?
xargs
处理,因此它最终会运行tar
两次。第二次运行会完全删除第一个 tarball。 - Etan Reisner