Ich habe eine cifs-Datei auf zwei Linux-Rechnern gemountet. Ich habe ein Perl-Skript, das die freigegebene Datei ändern kann. Wie sperren wir die Datei in diesem Szenario über das Netzwerk?Wie kann ich freigegebene Dateien in einem Linux-Netzwerk in Perl sperren?
Antwort
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.
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
Über das Netzwerk müssen Sie mehr arbeiten als das. Es kann auch davon abhängen, was Ihr Netzwerk-Dateisystem unterstützt. –
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. –
nützlich sein könnte, wenn Sie versuchen, dies über NFS zu tun, versuchen File::NFSLock.
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.
- 1. Wie kann ich Dateien in Android mit Java-Code sperren?
- 2. Wie kann ich ein Verzeichnis sperren?
- 3. Kann ich Dateien mit Google API sperren?
- 4. Wie kombiniere ich zwei Dateien in Perl?
- 5. Wie kann ich von kontinuierlich aktualisierten Dateien in Perl lesen?
- 6. Wie kann ich zwei Dateien in Perl unterscheiden?
- 7. Wie kann ich Excel-Dateien in Perl lesen?
- 8. Wie kann ich Dateien in einem Windows-Batchskript oder Perl in den Papierkorb verschieben?
- 9. Sperren von Dateien in Windows
- 10. Wie kann ich zwei Arrays einem Hash in Perl zuweisen?
- 11. Wie kann ich STDOUT in einem Perl-Programm vorübergehend unterdrücken?
- 12. Wie kann ich Perl-Variablen in einem anderen Stapelrahmen lokalisieren?
- 13. Wie kann ich Javascript in einem Perl Web Crawler behandeln?
- 14. Wie kann ich in einem Perl-Skript ssh?
- 15. Wie kann ich alle Subs in einem Perl-Paket exportieren?
- 16. Kann ich Codezeilen in einem geladenen Modul in Perl ändern?
- 17. Schließen Sie freigegebene Dateien programmgesteuert
- 18. Wie kann ich die Namen der Dateien drucken, die in einem Perl-Einzeiler verarbeitet werden?
- 19. Wie kann ich Dateien umbenennen?
- 20. Ansible freigegebene Dateien zwischen Rollen
- 21. Wie kann ich Introspektion in Perl durchführen?
- 22. Wie kann ich Daten in Perl validieren?
- 23. Wie kann ich Komponententests in Perl durchführen?
- 24. Wie kann ich Berechtigungen in Perl löschen?
- 25. Wie kann ich JSON in Perl parsen?
- 26. Wie kann ich Daten in Perl sortieren?
- 27. Wie kann ich Zeitzonen in Perl konvertieren?
- 28. Wie kann ich von Perl aus auf INI-Dateien zugreifen?
- 29. Wie kann ich PDF-Dateien mit Perl zusammenführen?
- 30. Wie kann ich meinen Perl-Code auf mehrere Dateien aufteilen?
Was für ein Netzwerk ist das? –