2009-07-17 36 views
1

我在兩臺Linux機器上安裝了一個cifs文件。我有一個可以修改共享文件的Perl腳本。在這種情況下,我們如何在網絡上鎖定文件?如何鎖定Perl網絡中的共享文件?

+0

這是什麼樣的網絡? – 2009-07-17 17:42:20

回答

0

我無法在CPAN上找到實現此目的的模塊。看起來包裝libsmbclient的模塊沒有實現協議的OPLOCKing部分。

smbfs來源中,功能smbfs_smb_lock似乎可以滿足您的需求。 要麼寫你自己的XS包裝模塊,要麼使用Inline :: C。

1

1

如果你的文件服務器是桑巴,那麼也要看smb.conf手冊頁:

... 

阻塞鎖(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 

... 

鎖定(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. 
相關問題