我的rsync bash脚本没有解析我的--exclude-from文件是通过php生成的,但是如果我在本地手动创建(作为root)同一个确切的文件。我在Xubuntu 12.10系统上有一个Web界面,它在本地写入rsync --exclude - 来自文件,然后通过rcp将它们推送到运行rsync脚本的(CentOS 6)备份盒。 (关于rcp请不要随便摇晃......我知道 - 在这种情况下我们没有选择。)
网页写文件:
PHP:
file_put_contents($exclfile, $write_ex_val);
然后从网络服务器上的本地bash脚本推送到备份框:
击:
rcp -p /path/to/file/${servername}_${backupsource}.excl ${server}:/destination/path
我已经将手工创建的文件(有效)的权限和所有权与php / rcp&d(不是)的相同文件进行了比较,他们& #39;两者都是一样的:
Bash:
stat -c '%a' server_backupsource_byhand.excl
644
stat -c '%a' server_backupsource_byphp.excl
644
ls -l server_backupsource_byhand.excl
-rw-r--r-- 1 root root 6 May 11 05:57 server_backupsource_byhand.excl
ls -l server_backupsource_byphp.excl
-rw-r--r-- 1 root root 6 May 11 05:58 server_backupsource_byphp.excl
如果相关,请参阅我的rsync行:
BASH:
rsync -vpaz -v --exclude-from=${exclfile} /mnt/${smbdir} /backup
我怀疑php可能正在以不同的格式编写文件(例如UTF8而不是ANSI),但我无法弄清楚如何测试它,并且在这里知识有限。
有没有人对如何解析php / rcp生成的文件有任何建议?
答案 0 :(得分:0)
使用diff和文件我发现php编写的版本没有编写换行符。在我的变量定义中,我使用了“。” as“$ write_ex_val。”删除此“。”让php写新行。我还删除了变量和“\ n”之间的空格,虽然我不确定这是否有助于解决方案。我赞成评论,厄尔,但我认为我没有足够的代表。再次感谢。