Smbclient put找不到我的本地驱动器?

时间:2013-04-02 13:25:24

标签: php database-backups samba smb

我正在尝试使用PHP / Samba将我的数据库备份到另一个硬盘驱动器。但它不起作用,我被困住了。

$dbBackup = 'backup_location.gz.des3';
if (!file_exists($dbBackup)) {
    throw new Exception("Today's backup does not exist!" . $dbBackup);
}
$dbBackup = realpath($dbBackup);

// create path to save on local drive
$savePath = 'folder\subfolder\\' . date('Y') . '\db\bu\\' . date('n') . '\\';
$savePath .= basename($dbBackup);

// build up SMBClient command
$command = 'smbclient';
$command .= ' -N'; // no-pass
$command .= ' -U ' . escapeshellarg($username) . '%' . escapeshellarg($password); // username/password
$command .= ' -O "TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192"'; // some options
$command .= ' -d 0'; // debug level
$command .= ' ' . escapeshellarg($share); // share name, it is \\x.x.com\x\x\x\x\".
$command .= ' -c ' . escapeshellarg('put ' . $dbBackup . ' ' . $savePath); // command to execute

// execute command on shell
$output = shell_exec($command);

// try to detect error's
if (stripos($output, 'NT_STATUS_') !== false) {
    throw new Exception($output);
}

使用此代码我检索此错误:NT_STATUS_OBJECT_PATH_NOT_FOUND

错误提供了无法找到的路径。我可以访问路径,但文件显然不存在。

我非常确定所有路径都是正确的,用户凭证也是如此。

我做错了吗?拼写错误或什么?我已经坚持了几个星期了。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题是我放入文件的驱动器是在不同的工作组中。

我在命令中添加了-W MYCORRECTWORKGROUP,它再次有效!