github.com/10XDev/rclone@v1.52.3-0.20200626220027-16af9ab76b2a/docs/content/faq.md (about)

     1  ---
     2  title: "FAQ"
     3  description: "Rclone Frequently Asked Questions"
     4  ---
     5  
     6  Frequently Asked Questions
     7  --------------------------
     8  
     9  ### Do all cloud storage systems support all rclone commands ###
    10  
    11  Yes they do.  All the rclone commands (eg `sync`, `copy` etc) will
    12  work on all the remote storage systems.
    13  
    14  ### Can I copy the config from one machine to another ###
    15  
    16  Sure!  Rclone stores all of its config in a single file.  If you want
    17  to find this file, run `rclone config file` which will tell you where
    18  it is.
    19  
    20  See the [remote setup docs](/remote_setup/) for more info.
    21  
    22  ### How do I configure rclone on a remote / headless box with no browser? ###
    23  
    24  This has now been documented in its own [remote setup page](/remote_setup/).
    25  
    26  ### Can rclone sync directly from drive to s3 ###
    27  
    28  Rclone can sync between two remote cloud storage systems just fine.
    29  
    30  Note that it effectively downloads the file and uploads it again, so
    31  the node running rclone would need to have lots of bandwidth.
    32  
    33  The syncs would be incremental (on a file by file basis).
    34  
    35  Eg
    36  
    37      rclone sync drive:Folder s3:bucket
    38  
    39  
    40  ### Using rclone from multiple locations at the same time ###
    41  
    42  You can use rclone from multiple places at the same time if you choose
    43  different subdirectory for the output, eg
    44  
    45  ```
    46  Server A> rclone sync /tmp/whatever remote:ServerA
    47  Server B> rclone sync /tmp/whatever remote:ServerB
    48  ```
    49  
    50  If you sync to the same directory then you should use rclone copy
    51  otherwise the two instances of rclone may delete each other's files, eg
    52  
    53  ```
    54  Server A> rclone copy /tmp/whatever remote:Backup
    55  Server B> rclone copy /tmp/whatever remote:Backup
    56  ```
    57  
    58  The file names you upload from Server A and Server B should be
    59  different in this case, otherwise some file systems (eg Drive) may
    60  make duplicates.
    61  
    62  ### Why doesn't rclone support partial transfers / binary diffs like rsync? ###
    63  
    64  Rclone stores each file you transfer as a native object on the remote
    65  cloud storage system.  This means that you can see the files you
    66  upload as expected using alternative access methods (eg using the
    67  Google Drive web interface).  There is a 1:1 mapping between files on
    68  your hard disk and objects created in the cloud storage system.
    69  
    70  Cloud storage systems (at least none I've come across yet) don't
    71  support partially uploading an object. You can't take an existing
    72  object, and change some bytes in the middle of it.
    73  
    74  It would be possible to make a sync system which stored binary diffs
    75  instead of whole objects like rclone does, but that would break the
    76  1:1 mapping of files on your hard disk to objects in the remote cloud
    77  storage system.
    78  
    79  All the cloud storage systems support partial downloads of content, so
    80  it would be possible to make partial downloads work.  However to make
    81  this work efficiently this would require storing a significant amount
    82  of metadata, which breaks the desired 1:1 mapping of files to objects.
    83  
    84  ### Can rclone do bi-directional sync? ###
    85  
    86  No, not at present.  rclone only does uni-directional sync from A ->
    87  B. It may do in the future though since it has all the primitives - it
    88  just requires writing the algorithm to do it.
    89  
    90  ### Can I use rclone with an HTTP proxy? ###
    91  
    92  Yes. rclone will follow the standard environment variables for
    93  proxies, similar to cURL and other programs.
    94  
    95  In general the variables are called `http_proxy` (for services reached
    96  over `http`) and `https_proxy` (for services reached over `https`).  Most
    97  public services will be using `https`, but you may wish to set both.
    98  
    99  The content of the variable is `protocol://server:port`.  The protocol
   100  value is the one used to talk to the proxy server, itself, and is commonly
   101  either `http` or `socks5`.
   102  
   103  Slightly annoyingly, there is no _standard_ for the name; some applications
   104  may use `http_proxy` but another one `HTTP_PROXY`.  The `Go` libraries
   105  used by `rclone` will try both variations, but you may wish to set all
   106  possibilities.  So, on Linux, you may end up with code similar to
   107  
   108      export http_proxy=http://proxyserver:12345
   109      export https_proxy=$http_proxy
   110      export HTTP_PROXY=$http_proxy
   111      export HTTPS_PROXY=$http_proxy
   112  
   113  The `NO_PROXY` allows you to disable the proxy for specific hosts.
   114  Hosts must be comma separated, and can contain domains or parts.
   115  For instance "foo.com" also matches "bar.foo.com".
   116  
   117  e.g.
   118  
   119      export no_proxy=localhost,127.0.0.0/8,my.host.name
   120      export NO_PROXY=$no_proxy
   121  
   122  Note that the ftp backend does not support `ftp_proxy` yet.
   123  
   124  ### Rclone gives x509: failed to load system roots and no roots provided error ###
   125  
   126  This means that `rclone` can't file the SSL root certificates.  Likely
   127  you are running `rclone` on a NAS with a cut-down Linux OS, or
   128  possibly on Solaris.
   129  
   130  Rclone (via the Go runtime) tries to load the root certificates from
   131  these places on Linux.
   132  
   133      "/etc/ssl/certs/ca-certificates.crt", // Debian/Ubuntu/Gentoo etc.
   134      "/etc/pki/tls/certs/ca-bundle.crt",   // Fedora/RHEL
   135      "/etc/ssl/ca-bundle.pem",             // OpenSUSE
   136      "/etc/pki/tls/cacert.pem",            // OpenELEC
   137  
   138  So doing something like this should fix the problem.  It also sets the
   139  time which is important for SSL to work properly.
   140  
   141  ```
   142  mkdir -p /etc/ssl/certs/
   143  curl -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
   144  ntpclient -s -h pool.ntp.org
   145  ```
   146  
   147  The two environment variables `SSL_CERT_FILE` and `SSL_CERT_DIR`, mentioned in the [x509 package](https://godoc.org/crypto/x509),
   148  provide an additional way to provide the SSL root certificates.
   149  
   150  Note that you may need to add the `--insecure` option to the `curl` command line if it doesn't work without.
   151  
   152  ```
   153  curl --insecure -o /etc/ssl/certs/ca-certificates.crt https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
   154  ```
   155  
   156  ### Rclone gives Failed to load config file: function not implemented error ###
   157  
   158  Likely this means that you are running rclone on Linux version not
   159  supported by the go runtime, ie earlier than version 2.6.23.
   160  
   161  See the [system requirements section in the go install
   162  docs](https://golang.org/doc/install) for full details.
   163  
   164  ### All my uploaded docx/xlsx/pptx files appear as archive/zip ###
   165  
   166  This is caused by uploading these files from a Windows computer which
   167  hasn't got the Microsoft Office suite installed.  The easiest way to
   168  fix is to install the Word viewer and the Microsoft Office
   169  Compatibility Pack for Word, Excel, and PowerPoint 2007 and later
   170  versions' file formats
   171  
   172  ### tcp lookup some.domain.com no such host ###
   173  
   174  This happens when rclone cannot resolve a domain. Please check that
   175  your DNS setup is generally working, e.g.
   176  
   177  ```
   178  # both should print a long list of possible IP addresses
   179  dig www.googleapis.com          # resolve using your default DNS
   180  dig www.googleapis.com @8.8.8.8 # resolve with Google's DNS server
   181  ```
   182  
   183  If you are using `systemd-resolved` (default on Arch Linux), ensure it
   184  is at version 233 or higher. Previous releases contain a bug which
   185  causes not all domains to be resolved properly.
   186  
   187  Additionally with the `GODEBUG=netdns=` environment variable the Go
   188  resolver decision can be influenced. This also allows to resolve certain
   189  issues with DNS resolution. See the [name resolution section in the go docs](https://golang.org/pkg/net/#hdr-Name_Resolution).
   190  
   191  ### The total size reported in the stats for a sync is wrong and keeps changing
   192  
   193  It is likely you have more than 10,000 files that need to be
   194  synced. By default rclone only gets 10,000 files ahead in a sync so as
   195  not to use up too much memory. You can change this default with the
   196  [--max-backlog](/docs/#max-backlog-n) flag.
   197  
   198  ### Rclone is using too much memory or appears to have a memory leak
   199  
   200  Rclone is written in Go which uses a garbage collector.  The default
   201  settings for the garbage collector mean that it runs when the heap
   202  size has doubled.
   203  
   204  However it is possible to tune the garbage collector to use less
   205  memory by [setting GOGC](https://dave.cheney.net/tag/gogc) to a lower
   206  value, say `export GOGC=20`.  This will make the garbage collector
   207  work harder, reducing memory size at the expense of CPU usage.
   208  
   209  The most common cause of rclone using lots of memory is a single
   210  directory with thousands or millions of files in.  Rclone has to load
   211  this entirely into memory as rclone objects.  Each rclone object takes
   212  0.5k-1k of memory.