mirror of
https://github.com/rclone/rclone.git
synced 2025-12-24 04:04:37 +00:00
Version v1.72.0
This commit is contained in:
@@ -12,7 +12,7 @@ Serve the remote as an NFS mount
|
||||
## Synopsis
|
||||
|
||||
Create an NFS server that serves the given remote over the network.
|
||||
|
||||
|
||||
This implements an NFSv3 server to serve any rclone remote via NFS.
|
||||
|
||||
The primary purpose for this command is to enable the [mount
|
||||
@@ -66,12 +66,16 @@ cache.
|
||||
|
||||
To serve NFS over the network use following command:
|
||||
|
||||
rclone serve nfs remote: --addr 0.0.0.0:$PORT --vfs-cache-mode=full
|
||||
```sh
|
||||
rclone serve nfs remote: --addr 0.0.0.0:$PORT --vfs-cache-mode=full
|
||||
```
|
||||
|
||||
This specifies a port that can be used in the mount command. To mount
|
||||
the server under Linux/macOS, use the following command:
|
||||
|
||||
mount -t nfs -o port=$PORT,mountport=$PORT,tcp $HOSTNAME:/ path/to/mountpoint
|
||||
|
||||
```sh
|
||||
mount -t nfs -o port=$PORT,mountport=$PORT,tcp $HOSTNAME:/ path/to/mountpoint
|
||||
```
|
||||
|
||||
Where `$PORT` is the same port number used in the `serve nfs` command
|
||||
and `$HOSTNAME` is the network address of the machine that `serve nfs`
|
||||
@@ -106,8 +110,10 @@ directory should be considered up to date and not refreshed from the
|
||||
backend. Changes made through the VFS will appear immediately or
|
||||
invalidate the cache.
|
||||
|
||||
```text
|
||||
--dir-cache-time duration Time to cache directory entries for (default 5m0s)
|
||||
--poll-interval duration Time to wait between polling for changes. Must be smaller than dir-cache-time. Only on supported remotes. Set to 0 to disable (default 1m0s)
|
||||
```
|
||||
|
||||
However, changes made directly on the cloud storage by the web
|
||||
interface or a different copy of rclone will only be picked up once
|
||||
@@ -119,16 +125,22 @@ You can send a `SIGHUP` signal to rclone for it to flush all
|
||||
directory caches, regardless of how old they are. Assuming only one
|
||||
rclone instance is running, you can reset the cache like this:
|
||||
|
||||
kill -SIGHUP $(pidof rclone)
|
||||
```console
|
||||
kill -SIGHUP $(pidof rclone)
|
||||
```
|
||||
|
||||
If you configure rclone with a [remote control](/rc) then you can use
|
||||
rclone rc to flush the whole directory cache:
|
||||
|
||||
rclone rc vfs/forget
|
||||
```console
|
||||
rclone rc vfs/forget
|
||||
```
|
||||
|
||||
Or individual files or directories:
|
||||
|
||||
rclone rc vfs/forget file=path/to/file dir=path/to/dir
|
||||
```console
|
||||
rclone rc vfs/forget file=path/to/file dir=path/to/dir
|
||||
```
|
||||
|
||||
## VFS File Buffering
|
||||
|
||||
@@ -159,6 +171,7 @@ write simultaneously to a file. See below for more details.
|
||||
Note that the VFS cache is separate from the cache backend and you may
|
||||
find that you need one or the other or both.
|
||||
|
||||
```text
|
||||
--cache-dir string Directory rclone will use for caching.
|
||||
--vfs-cache-mode CacheMode Cache mode off|minimal|writes|full (default off)
|
||||
--vfs-cache-max-age duration Max time since last access of objects in the cache (default 1h0m0s)
|
||||
@@ -166,6 +179,7 @@ find that you need one or the other or both.
|
||||
--vfs-cache-min-free-space SizeSuffix Target minimum free space on the disk containing the cache (default off)
|
||||
--vfs-cache-poll-interval duration Interval to poll the cache for stale objects (default 1m0s)
|
||||
--vfs-write-back duration Time to writeback files after last use when using cache (default 5s)
|
||||
```
|
||||
|
||||
If run with `-vv` rclone will print the location of the file cache. The
|
||||
files are stored in the user cache file area which is OS dependent but
|
||||
@@ -213,13 +227,13 @@ directly to the remote without caching anything on disk.
|
||||
|
||||
This will mean some operations are not possible
|
||||
|
||||
* Files can't be opened for both read AND write
|
||||
* Files opened for write can't be seeked
|
||||
* Existing files opened for write must have O_TRUNC set
|
||||
* Files open for read with O_TRUNC will be opened write only
|
||||
* Files open for write only will behave as if O_TRUNC was supplied
|
||||
* Open modes O_APPEND, O_TRUNC are ignored
|
||||
* If an upload fails it can't be retried
|
||||
- Files can't be opened for both read AND write
|
||||
- Files opened for write can't be seeked
|
||||
- Existing files opened for write must have O_TRUNC set
|
||||
- Files open for read with O_TRUNC will be opened write only
|
||||
- Files open for write only will behave as if O_TRUNC was supplied
|
||||
- Open modes O_APPEND, O_TRUNC are ignored
|
||||
- If an upload fails it can't be retried
|
||||
|
||||
### --vfs-cache-mode minimal
|
||||
|
||||
@@ -229,10 +243,10 @@ write will be a lot more compatible, but uses the minimal disk space.
|
||||
|
||||
These operations are not possible
|
||||
|
||||
* Files opened for write only can't be seeked
|
||||
* Existing files opened for write must have O_TRUNC set
|
||||
* Files opened for write only will ignore O_APPEND, O_TRUNC
|
||||
* If an upload fails it can't be retried
|
||||
- Files opened for write only can't be seeked
|
||||
- Existing files opened for write must have O_TRUNC set
|
||||
- Files opened for write only will ignore O_APPEND, O_TRUNC
|
||||
- If an upload fails it can't be retried
|
||||
|
||||
### --vfs-cache-mode writes
|
||||
|
||||
@@ -315,9 +329,11 @@ read, at the cost of an increased number of requests.
|
||||
|
||||
These flags control the chunking:
|
||||
|
||||
```text
|
||||
--vfs-read-chunk-size SizeSuffix Read the source objects in chunks (default 128M)
|
||||
--vfs-read-chunk-size-limit SizeSuffix Max chunk doubling size (default off)
|
||||
--vfs-read-chunk-streams int The number of parallel streams to read at once
|
||||
```
|
||||
|
||||
The chunking behaves differently depending on the `--vfs-read-chunk-streams` parameter.
|
||||
|
||||
@@ -331,9 +347,9 @@ value is "off", which is the default, the limit is disabled and the chunk size
|
||||
will grow indefinitely.
|
||||
|
||||
With `--vfs-read-chunk-size 100M` and `--vfs-read-chunk-size-limit 0`
|
||||
the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M and so on.
|
||||
When `--vfs-read-chunk-size-limit 500M` is specified, the result would be
|
||||
0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on.
|
||||
the following parts will be downloaded: 0-100M, 100M-200M, 200M-300M, 300M-400M
|
||||
and so on. When `--vfs-read-chunk-size-limit 500M` is specified, the result would
|
||||
be 0-100M, 100M-300M, 300M-700M, 700M-1200M, 1200M-1700M and so on.
|
||||
|
||||
Setting `--vfs-read-chunk-size` to `0` or "off" disables chunked reading.
|
||||
|
||||
@@ -371,32 +387,41 @@ In particular S3 and Swift benefit hugely from the `--no-modtime` flag
|
||||
(or use `--use-server-modtime` for a slightly different effect) as each
|
||||
read of the modification time takes a transaction.
|
||||
|
||||
```text
|
||||
--no-checksum Don't compare checksums on up/download.
|
||||
--no-modtime Don't read/write the modification time (can speed things up).
|
||||
--no-seek Don't allow seeking in files.
|
||||
--read-only Only allow read-only access.
|
||||
```
|
||||
|
||||
Sometimes rclone is delivered reads or writes out of order. Rather
|
||||
than seeking rclone will wait a short time for the in sequence read or
|
||||
write to come in. These flags only come into effect when not using an
|
||||
on disk cache file.
|
||||
|
||||
```text
|
||||
--vfs-read-wait duration Time to wait for in-sequence read before seeking (default 20ms)
|
||||
--vfs-write-wait duration Time to wait for in-sequence write before giving error (default 1s)
|
||||
```
|
||||
|
||||
When using VFS write caching (`--vfs-cache-mode` with value writes or full),
|
||||
the global flag `--transfers` can be set to adjust the number of parallel uploads of
|
||||
modified files from the cache (the related global flag `--checkers` has no effect on the VFS).
|
||||
the global flag `--transfers` can be set to adjust the number of parallel uploads
|
||||
of modified files from the cache (the related global flag `--checkers` has no
|
||||
effect on the VFS).
|
||||
|
||||
```text
|
||||
--transfers int Number of file transfers to run in parallel (default 4)
|
||||
```
|
||||
|
||||
## Symlinks
|
||||
|
||||
By default the VFS does not support symlinks. However this may be
|
||||
enabled with either of the following flags:
|
||||
|
||||
```text
|
||||
--links Translate symlinks to/from regular files with a '.rclonelink' extension.
|
||||
--vfs-links Translate symlinks to/from regular files with a '.rclonelink' extension for the VFS
|
||||
```
|
||||
|
||||
As most cloud storage systems do not support symlinks directly, rclone
|
||||
stores the symlink as a normal file with a special extension. So a
|
||||
@@ -408,7 +433,8 @@ Note that `--links` enables symlink translation globally in rclone -
|
||||
this includes any backend which supports the concept (for example the
|
||||
local backend). `--vfs-links` just enables it for the VFS layer.
|
||||
|
||||
This scheme is compatible with that used by the [local backend with the --local-links flag](/local/#symlinks-junction-points).
|
||||
This scheme is compatible with that used by the
|
||||
[local backend with the --local-links flag](/local/#symlinks-junction-points).
|
||||
|
||||
The `--vfs-links` flag has been designed for `rclone mount`, `rclone
|
||||
nfsmount` and `rclone serve nfs`.
|
||||
@@ -418,7 +444,7 @@ It hasn't been tested with the other `rclone serve` commands yet.
|
||||
A limitation of the current implementation is that it expects the
|
||||
caller to resolve sub-symlinks. For example given this directory tree
|
||||
|
||||
```
|
||||
```text
|
||||
.
|
||||
├── dir
|
||||
│ └── file.txt
|
||||
@@ -496,7 +522,9 @@ sync`.
|
||||
This flag allows you to manually set the statistics about the filing system.
|
||||
It can be useful when those statistics cannot be read correctly automatically.
|
||||
|
||||
```text
|
||||
--vfs-disk-space-total-size Manually set the total disk space size (example: 256G, default: -1)
|
||||
```
|
||||
|
||||
## Alternate report of used bytes
|
||||
|
||||
@@ -507,7 +535,7 @@ With this flag set, instead of relying on the backend to report this
|
||||
information, rclone will scan the whole remote similar to `rclone size`
|
||||
and compute the total used space itself.
|
||||
|
||||
_WARNING._ Contrary to `rclone size`, this flag ignores filters so that the
|
||||
**WARNING**: Contrary to `rclone size`, this flag ignores filters so that the
|
||||
result is accurate. However, this is very inefficient and may cost lots of API
|
||||
calls resulting in extra charges. Use it as a last resort and only with caching.
|
||||
|
||||
@@ -525,7 +553,7 @@ Note that some backends won't create metadata unless you pass in the
|
||||
For example, using `rclone mount` with `--metadata --vfs-metadata-extension .metadata`
|
||||
we get
|
||||
|
||||
```
|
||||
```console
|
||||
$ ls -l /mnt/
|
||||
total 1048577
|
||||
-rw-rw-r-- 1 user user 1073741824 Mar 3 16:03 1G
|
||||
@@ -550,8 +578,6 @@ If the file has no metadata it will be returned as `{}` and if there
|
||||
is an error reading the metadata the error will be returned as
|
||||
`{"error":"error string"}`.
|
||||
|
||||
|
||||
|
||||
```
|
||||
rclone serve nfs remote:path [flags]
|
||||
```
|
||||
@@ -605,7 +631,7 @@ See the [global flags page](/flags/) for global options not listed here.
|
||||
|
||||
Flags for filtering directory listings
|
||||
|
||||
```
|
||||
```text
|
||||
--delete-excluded Delete files on dest excluded from sync
|
||||
--exclude stringArray Exclude files matching pattern
|
||||
--exclude-from stringArray Read file exclude patterns from file (use - to read from stdin)
|
||||
@@ -633,5 +659,10 @@ Flags for filtering directory listings
|
||||
|
||||
## See Also
|
||||
|
||||
<!-- markdownlint-capture -->
|
||||
<!-- markdownlint-disable ul-style line-length -->
|
||||
|
||||
* [rclone serve](/commands/rclone_serve/) - Serve a remote over a protocol.
|
||||
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
|
||||
Reference in New Issue
Block a user