I will give an example of a script for creating backup copies to Yandex drive.
On the test, I use the Ubuntu operating system and execute commands from the root user through sudo.
Curl must be installed on the system or install it with the command:
sudo apt-get install curl
First, create an empty file for the script:
sudo touch backup_to_yandex.sh
We’ll specify the minimum access rights to the file so that other users can’t open it, because the Yandex password will be stored in the file:
sudo chmod 0700 backup_to_yandex.sh
Open the file in some kind of text editor, for example nano (Ctrl+X to exit, y/n to save or cancel changes):
sudo nano backup_to_yandex.sh
And add the following contents to the file (if you work through putty, you can paste the contents of the clipboard by right-clicking):
#!/bin/bash
# We assign the path to the files to variables so that in the future it will be easier to specify them several times
$FILE1=/tmp/etc_`date +%Y-%b`.tar.gz
$FILE2=/tmp/sql_`date +%Y-%b`.sql.gz
# For example, we first archive the /etc directory in the archive
tar -czf $FILE1 /etc
# Let's dump all mysql databases
mysqldump -u USERNAME --password=PASSWORD --all-databases | gzip > $FILE2
# Now send these two files to the Yandex drive (specify the files separated by commas)
curl --user USER:PASSWORD -T "{$FILE1,$FILE2}" https://webdav.yandex.ru/
# Now delete them, as they are already on Yandex drive
unlink $FILE1
unlink $FILE2
You can also set an archive password when archiving, see my more detailed articles on this topic:
RAR and ZIP archiving on Linux
RAR архивы в Linux Ubuntu
The script can be added to the Cron scheduler to run automatically – Using and configuring CRON