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

Metadata

Release files for backupmysystemusb2usb 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for backupmysystemusb2usb 1.0.4
File Size Uploaded
backupmysystemusb2usb-1.0.4.tar.gz 11.1 kB Details

Release files / backupmysystemusb2usb-1.0.4.tar.gz

Download URL backupmysystemusb2usb-1.0.4.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
6d893e604469da7efe09f92564410433899fde0d23d4d1eea739f815524cce21
BLAKE2b-256 checksum
How to use checksums
d6ffbd5db835fb5e10478359fed2a405503bb9df2e59b4458a5d6b2a62298b58
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

1.0.4 This release

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.0.16

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page