2013-04-02 5 views
0

PHP/Samba를 사용하여 데이터베이스를 다른 하드 드라이브에 백업하려고합니다. 하지만 작동하지 않고 붙어 있습니다.Smbclient put이 로컬 드라이브를 찾을 수 없습니까?

$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

를 오류는 찾을 수없는 경로를 제공합니다. 나는 경로를 방문 할 수 있지만 파일은 분명히 거기에 없습니다.

나는 모든 경로가 정확하고 사용자 자격 증명도 확실합니다.

내가 잘못 했나요? 오타 나 뭐니? 나는 지금 몇 주 동안 붙어있다.

미리 도움을 청하십시오!

+0

아 아녜요 :) 어떤 OS를 사용하고 있습니까? – dbf

+0

@dbf 서버에서 우분투 서버를 실행 중입니다. 복사하려고하는 드라이브가 확실하지 않습니다. 그것은 공유 드라이브입니다. –

+0

이 부분의''put '을'var_dump'할 수 있습니까? $ dbBackup. ''. $ savePath'? – dbf

답변

0

문제는 파일을 넣는 드라이브가 다른 작업 그룹에 있다는 것입니다.

명령에 -W MYCORRECTWORKGROUP을 추가했는데 다시 작동합니다!