Skip to main content

backupmystemusb2usb is a Creative Commons Python package to copy usb key.

Its runs on Python 3.7 and has a dependency for yaml, and another one for the gui.

Installation without the source

To install backupmysytemusb2usb package run the following command:

sudo apt-get install libyaml-dev python3-gi
sudo -H pip3 install backupmystemusb2usb

You have to create a config.yml file (you can save it into your ~/.local/share/backupmysystemusb2usb directory)

UUID_1_Master: 790d1fbb-96ed-46c3-868d-08e05e223fa7
UUID_1_Slave: 790d1fbb-96ed-46c3-868d-08e05e223fa7
Temp_img: /home/stephane/Temp/Linux.img
Temp_log: /home/stephane/Temp/BackupMySystem-Temp.log
Kill_dd: True

UUID list

sudo blkid

Find your device and to change the label if the device master UUID is the same as the slave UUID (for exemple: if you cancel in copying temporary img to disk slave), you have to put a date upper on master than slave

Warning UUID is not Label !

sudo e2label /dev/sd_1 "19991231235959"

For the deamon, write a run.py for running by user root with chmod 700

#!/usr/bin/env python3
import sys
import yaml
from backupmysystemusb2usb.usb2usb import usb2usb
try:
   u2u = usb2usb(sys.argv[1])
   u2u.backup()
except yaml.YAMLError:
   exit()

You can create a service systemd if you planed to backup your usb key every day in the morning. You can wakeonlan from a raspberrypi or with another technic

wakeonlan MACADRESS
crontab -e
# write your cron
sudo service cron reload

Now to create a daemon in startup (without console).

Use this name “backupmysystemusb2usb” because in source const.py this file is a constant for GUI progress for non-root user

cd /etc/systemd/system
vi backupmysystemusb2usb.service

Write

[Unit]
After=ssh.service

[Service]
WorkingDirectory=/your/working/path/
ExecStart=/usr/bin/sh -c "/your/working/path/run.py /your/working/path/config.yml"

[Install]
WantedBy=default.target

Enable and start

sudo systemctl daemon-reload
sudo systemctl enable backupmysystemusb2usb

Then the service start on reboot. If you will test now the service :

sudo systemctl start backupmysystemusb2usb

Check the log (the last 20 messages)

sudo journalctl --unit backupmysystemusb2usb -n 20

You can go to check your output log file configured by config.yml

Now we have to create the shell return for non-root user gui.py

touch gui.py
chmod 700 gui.py
vi gui.py

And write in file

#!/usr/bin/env python3
import yaml
from backupmysystemusb2usb.usb2usb import usb2usb
u2u = usb2usb('/path/to/your/config.yml')
u2u.gui()

You can create a autostart Gnome desktop startup

cd ~/.config/autostart
touch backupmysystemusb2usb.desktop
chmod 744
vi backupmysystemusb2usb.desktop

And in your editor enter

[Desktop Entry]
Name=Backup my system usb to usb
Comment=Copy disk with the same space
Exec=/your/working/path/gui.py
Icon=org.gnome.Terminal
Path=/your/working/path/
Terminal=true
Hidden=false
Type=Application
Categories=Utility;Application;

Installation from source

To install the latest developement version run the following command:

git clone https://github.com/stephaneworkspace/backupmysystemusb2usb

Versions

1.04
  • Change license to Creative Commons

1.03
  • Change license to Creative Commons

1.02
  • Fix bug and rename label usb key

1.0.1
  • Add gui Gtk

0.0.16
  • Alpha version

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

backupmysystemusb2usb-1.0.4.tar.gz (11.1 kB view details)

Uploaded Source

File details

Details for the file backupmysystemusb2usb-1.0.4.tar.gz.

File metadata

  • Download URL: backupmysystemusb2usb-1.0.4.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/2.7.17

File hashes

Hashes for backupmysystemusb2usb-1.0.4.tar.gz
Algorithm Hash digest
SHA256 6d893e604469da7efe09f92564410433899fde0d23d4d1eea739f815524cce21
MD5 3ecd97304ec8a5db08f19171cc6c002e
BLAKE2b-256 d6ffbd5db835fb5e10478359fed2a405503bb9df2e59b4458a5d6b2a62298b58

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.4 This release

1 file

1.0.3

1 file

1.0.2

1 file

1.0.1

1 file

1.0.0

1 file

0.0.16

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page