In this tutorial I will show you how to synchronize any files with your Raspberry PI using OneDrive as the example. For this project I am just going to synchronize my Documents folder from OneDrive. You can also use this for many other types of drives eg. Google Drive or Dropbox and the process is very similar. Just choose a different number in step 6.

  1. First open a Terminal window sand enter curl -L https://raw.github.com/pageauc/rclone4pi/master/rclone-install.sh | bash
  2. Once this has finished you are ready to configure Rclone
  3. Enter the command rclone config
  4. Enter n (for a new connection) and then press enter
  5. Enter a name for the connection (i’ll enter onedrive) and press enter
  6. Enter 18 for OneDrive and press enter
  7. Press Enter for client ID
  8. Press Enter for Client Secret
  9. Press n and enter for edit advanced config
  10. Enter y for auto config (if you are on the Pi Directly) or n if you are logged in remotely through SSH and then press enter
    1. Only follow if your Pi doesn’t have a Desktop installed (Headless) – you will need to install rclone on a machine that has a desktop and web browser.
    2. Then run the command rclone config “onedrive”
    3. You then login, when you get success paste the result from the terminal window into your remote terminal. Then skip to step 13.
  11. A browser window will now open, log in with your Microsoft Account and select yes to allow OneDrive access.
  12. You will then see “success” and you can close the web browser
  13. Now choose 1 for OneDrive Personal or Business
  14. Now select the OneDrive you would like to use, you will probably only have one OneDrive linked to your account. This will be 0
  15. Now select y for yes
  16. Now select y for yes again to save the connection
  17. Close the terminal window
  18. Using a web browser or phone app, In your OneDrive create a folder to sync; i’ll call mine Documents
  19. Now we have set up the connection, however we still have to synchronize the folder with the raspberry PI. To do this we will write a simple .sh script and set it to run at a set time.
  20. First open a terminal and test your sync command. rclone sync -v onedrive:Documents /home/pi/Documents This command will sync the “onedrive” connection “Documents” folder to your raspberry pi. The contents will be downloaded to you documents folder on the pi. If successful you will see the terminal start downloading each file to the folder.
  21. For this method you need to login to the pi directly. Now lets make it automatic. If your comfortable with a text editor you can enter this string into leafpad on the raspberry pi and save it as sync.sh rclone sync -v onedrive:Documents /home/pi/Documents
  22. If you have used different names to me, replace onedrive with your connection name and replace Documents with your folder name. You can also change the path, this is where the folder is synced to.
  23. Put the file in the /home/pi/Documents on your Raspberry Pi
  24. Make it Executable, in the terminal chmod +x /home/pi/Documents/sync.sh
  25. This file will call the connection and download any new files from OneDrive.
    1. Only follow if your Pi doesn’t have a Desktop installed (Headless) or you have installed Raspian Buster– Run crontab -e  in the terminal
    2. Select 2 for nano
    3. Enter the following string – 0 * * * * /home/pi/Documents/sync.sh 
    4. Save the file ( usually Ctrl + O to save and Ctrl + X to exit) ,then skip to step 33
  26. (Depreciated, Gnome Schedule has been removed as of Raspian Buster. Only use if you have an older version. Use step 24.i if you have Raspian Buster or newer) Next we will install a tool to set the script to run automatically. Open a terminal and enter sudo apt-get install gnome-schedule
  27. Enter your password and once the installation is completed close the terminal
  28. Open the Raspberry Pi menu and under System Tools open Scheduled Tasks
  29. Select New and then A Task that launches recurrently
  30. Enter a Description if you like. In the command box enter /home/pi/Documents/sync.sh
  31. Next you can enter the times for synchronization, i’m going to leave it as default; which syncs every hour. Feel free to change this to your liking
  32. Then Click add
  33. That’s it! Restart your Raspberry Pi and add files to your OneDrive

I use this to synchronize photos to my raspberry pi Photo frame project.