2009-07-17 5 views

Antwort

0

Ich konnte kein Modul auf CPAN finden, um dies zu erreichen. Es scheint, dass die Module, die libsmbclient umhüllen, den OPLOCKing-Teil des Protokolls nicht implementieren. In den smbfs Quellen scheint die Funktion smbfs_smb_lock zu tun, was Sie brauchen. Schreiben Sie entweder Ihr eigenes XS-Wrapper-Modul oder verwenden Sie Inline :: C.

2

Sieht so aus, als könnten wir fcntl() zum Sperren von Dateien verwenden. Ich habe gerade seine Arbeits :) Link

http://www.cpan.org/scripts/file-handling/flock.using.fcntl.example

Vielen Dank für Ihre Antwort

_Anandan

+1

Über das Netzwerk müssen Sie mehr arbeiten als das. Es kann auch davon abhängen, was Ihr Netzwerk-Dateisystem unterstützt. –

+0

Er sagt, es ist CIFS. Ich konnte die Unterstützung für Client-Oplock-Anfragen in keinem der Perl-Module sehen, die das SMB-Protokoll implementieren. –

1

nützlich sein könnte, wenn Sie versuchen, dies über NFS zu tun, versuchen File::NFSLock.

1

Wenn Ihr Dateiserver Samba ist, dann schauen Sie auch auf der Manpage zu smb.conf:

... 

Blockierung Schlösser (S)

 This parameter controls the behavior of smbd(8) when given a request by a client 
     to obtain a byte range lock on a region of an open file, and the request has a 
     time limit associated with it. 

     If this parameter is set and the lock range requested cannot be immediately 
     satisfied, samba will internally queue the lock request, and periodically attempt 
     to obtain the lock until the timeout period expires. 

     If this parameter is set to no, then samba will behave as previous versions of 
     Samba would and will fail the lock request immediately if the lock range cannot 
     be obtained. 

     Default: blocking locks = yes 

... 

Verriegelung (S)

 This controls whether or not locking will be performed by the server in response 
     to lock requests from the client. 

     If locking = no, all lock and unlock requests will appear to succeed and all lock 
     queries will report that the file in question is available for locking. 

     If locking = yes, real locking will be performed by the server. 

     This option may be useful for read-only filesystems which may not need locking 
     (such as CDROM drives), although setting this parameter of no is not really 
     recommended even in this case. 

     Be careful about disabling locking either globally or in a specific service, as 
     lack of locking may result in data corruption. You should never need to set this 
     parameter. 
Verwandte Themen