iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Automate an encrypted Ubuntu backup by running Duplicity from a root-owned script or service account, using GnuPG public-key encryption, and invoking that script from a systemd timer or cron. The first run creates a full tar volume; later runs create librsync-based incremental volumes. A setting such as --full-if-older-than 1M starts a new full chain when the previous full backup is more than one month old.
The backup destination can be a local path, an SFTP/SSH server, or an S3-compatible object store. Keep the GPG private key, passphrase, signing key (if used), and destination credentials in a recovery location separate from the Ubuntu host. Test a restore before deleting old chains, and exclude /proc when backing up the root filesystem.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteWhat Duplicity and GPG do together
Duplicity packages files into tar-format volumes, encrypts (and optionally signs) those volumes with GnuPG, then writes them to a local or remote backend. Its use of librsync means subsequent runs transfer only changed data instead of rebuilding a complete archive every time. The upstream documentation describes the result this way: because GnuPG encrypts and/or signs the archives, they are protected from spying or modification by the storage server.
Encryption happens before the volume is sent to the backend. An SFTP administrator or object-storage operator can see that encrypted files exist and can usually see metadata such as names, sizes, and timestamps, but cannot read the archived file contents without the required GPG private key and passphrase. Signing is a separate integrity and authenticity control: add a signing key when you need recipients to verify who produced a volume.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
On Ubuntu Noble, the packaged manpage identifies the release as duplicity 2.1.4-3ubuntu2. Commands and option names below follow that Duplicity interface; check the installed package’s help output if your Ubuntu release carries a different version.
Decide what a recoverable backup must contain
Before writing a timer, define the recovery point and recovery location you need. Duplicity’s files are useful only when the complete chain of volumes and the matching GPG key material are available. A schedule that runs perfectly but loses its private key is not a recoverable backup.
Identify data and exclusions
- List the directories that must be restored, such as
/srv/data, application uploads, configuration, and database dumps. - If you back up
/, exclude/proc. Ubuntu’s manpage warns that traversing the kernel’s pseudo-files there can make Duplicity crash: use an exclusion such as--exclude /proc. - Decide whether transient caches, build outputs, and other reproducible data belong in the set. Every unnecessary byte increases storage and transfer work.
Define the recovery horizon
Retention should follow the oldest restore point you actually need. For example, a business that must recover any day in the last year needs a longer chain policy than one that needs only the last 30 days. Set a full-backup interval and cleanup rule only after answering that question; deleting an old full can also delete the incremental volumes that depend on it.
Prepare the encryption identity
Create or select a GPG key whose private half is available to the unattended job and whose recovery copy is stored away from the Ubuntu host. Record the key ID used by Duplicity. If you sign archives, record the signing-key ID as well. A restore requires the private decryption key, its passphrase, and any trust or agent setup needed to use it.
Choose a backend: local, SFTP/SSH, or S3
Duplicity supports local file URLs, SFTP/SCP and rsync-over-SSH, and Amazon S3 among other backends. The right choice depends less on encryption—the archive is GPG-encrypted in every case—and more on where a copy survives, how quickly it can be fetched, and how access is controlled.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
| Backend | Host or geographic separation | Recovery characteristics | Access-control model | Cost and retention considerations |
|---|---|---|---|---|
| Local file URL | Usually on the same Ubuntu host or an attached disk; it does not by itself protect against host loss. | Fast when the disk and host are available. It is not a disaster-recovery copy unless the path is independently replicated. | Unix ownership and permissions protect the destination; anyone who can read the encrypted volumes still needs the GPG key to decrypt them. | Local capacity and hardware costs; no remote request charges are established by the Duplicity documentation. |
| SFTP, SCP, or rsync over SSH | A separate server can provide physical or geographic separation from the Ubuntu machine. | Recovery depends on network reachability and the backup server’s throughput. It remains usable if the original host is destroyed. | SSH accounts, keys, host verification, and server-side directory permissions govern access. | Storage and server/network pricing depend on the provider. Duplicity’s retention actions operate on the remote volume set. |
| S3 or an S3-compatible object store | Object storage can be placed in a different failure domain from the source host, subject to the provider’s region and durability design. | Recovery requires object-store credentials, network access, and retrieval of all volumes in the relevant chain. Large restores are bounded by download throughput and any provider retrieval policy. | Bucket or account policies and access keys control listing, reading, and writing; GPG still protects the archive contents from the storage operator. | Storage, request, transfer, and possible retrieval charges vary by provider and are not specified by Duplicity’s documentation. Object lifecycle rules must not delete volumes still needed by a chain. |
Whichever backend you choose, perform a restore from that backend rather than assuming that a successful upload proves recoverability.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Install and verify the Ubuntu components
- Install the Ubuntu Duplicity package and GnuPG package appropriate for your release. Confirm the installed version with
duplicity --version; Noble’s packaged manpage lists version 2.1.4-3ubuntu2. - Import or generate the GPG key that will encrypt the backup. Confirm that the account running Duplicity can access the public key for encryption and the private key for decryption during a restore.
- Verify connectivity to the selected destination with the same account that the scheduled job will use. A root shell test is not equivalent to a service-account test because SSH keys, GPG homes, and permissions differ.
- Create a recovery record containing the destination address, bucket or directory name, GPG key ID, private-key backup location, passphrase location, and signing-key details. Store that record separately from the source host.
Build a protected backup script
Put the command in a root-owned file or in a tightly restricted service account’s directory. The script should fail on errors, use a private umask, and read secrets through a protected mechanism rather than embedding a real passphrase in the command line or shell history.
SFTP example
#!/bin/bash
set -euo pipefail
umask 077
PASSPHRASE="$(cat /etc/duplicity/passphrase)"
export PASSPHRASE
exec /usr/bin/duplicity
--encrypt-key YOUR_GPG_KEY_ID
--full-if-older-than 1M
/srv/data
sftp://backupuser@backup.example/ubuntu-data
Adapt the source path, key ID, remote account, host, and directory. The first invocation creates a full backup. Later invocations create incrementals until the full chain is older than one month, at which point --full-if-older-than 1M requires a new full backup.
Root-filesystem example
#!/bin/bash
set -euo pipefail
umask 077
PASSPHRASE="$(cat /etc/duplicity/passphrase)"
export PASSPHRASE
exec /usr/bin/duplicity
--encrypt-key YOUR_GPG_KEY_ID
--full-if-older-than 1M
--exclude /proc
/
sftp://backupuser@backup.example/ubuntu-root
The --exclude /proc option is essential for a root-tree backup on Ubuntu. Add other exclusions only after deciding that the omitted data is reproducible or protected elsewhere.
S3-shaped destination
duplicity
--encrypt-key YOUR_GPG_KEY_ID
--full-if-older-than 1M
/srv/data
s3://your-bucket/ubuntu-data
Supply the object-store credentials through the backend’s protected credential mechanism. Do not paste access secrets or a GPG passphrase into a command that will be saved in shell history. If your GPG setup uses an agent, Duplicity documents --use-agent to connect to gpg-agent; make sure the agent is available to the scheduled account and can operate without an interactive desktop prompt.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteRank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
Protect the script and secret file
- Make the script owned by root (or the dedicated backup account) and non-writable by other users.
- Make the passphrase file readable only by the account that runs the job. A protected environment or secret-store integration is preferable to a plaintext script.
- Keep destination credentials, SSH private keys, and known-host data in the same least-privilege model.
- Do not print the passphrase, backend credentials, or decrypted file names in normal logs.
Schedule the job with a systemd timer
A systemd timer gives you explicit service status, journal logs, and a persistent catch-up option after a shutdown. The service should run the script and return a nonzero status when Duplicity fails.
Create the service unit
[Unit]
Description=Encrypted Duplicity backup
[Service]
Type=oneshot
User=root
ExecStart=/usr/local/sbin/duplicity-backup
Save it as /etc/systemd/system/duplicity-backup.service. If you use a dedicated account, replace User=root and ensure that account can read the source, GPG home, secret files, and SSH credentials.
Create the timer unit
[Unit]
Description=Run encrypted Duplicity backup daily
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
Save it as /etc/systemd/system/duplicity-backup.timer, then load and enable it:
sudo systemctl daemon-reload
sudo systemctl enable --now duplicity-backup.timer
sudo systemctl list-timers duplicity-backup.timer
sudo systemctl start duplicity-backup.service
sudo systemctl status duplicity-backup.service
sudo journalctl -u duplicity-backup.service
Persistent=true asks systemd to run a missed calendar event after the machine comes back up. It does not make an interrupted upload magically complete; the service must run successfully, and the next invocation will create or continue the appropriate Duplicity chain.
Use cron when a timer is not appropriate
For a conventional cron deployment, place a line in /etc/cron.d/duplicity-backup. The system-wide format includes the account field:
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
15 2 * * * root /usr/local/sbin/duplicity-backup >>/var/log/duplicity-backup.log 2>&1
Use a wrapper that preserves Duplicity's exit status. Redirected output alone is not alerting: arrange monitoring that notices a nonzero exit code, an unexpectedly old last-success timestamp, or missing log entries. Avoid overlapping runs; a second process writing the same destination while the first is active can leave an operationally confusing collection.
Understand full and incremental chains
The first run is deliberately expensive because it uploads a full set of volumes. Each later run references that full and transfers changed data as incrementals. A new full starts when the age condition specified by --full-if-older-than is met. A full interval reduces the number of incremental volumes needed for a restore, but it also increases transfer and storage work on the full-run day.
Do not delete an old full while retaining incrementals that depend on it. Before changing the interval, calculate the longest restore point you promise, the number of full chains you will keep, and the temporary space required to create a new full.
Free tools Windows power users keep installed
One-click scans. No signup required.
Apply retention without destroying recoverability
Duplicity exposes retention actions including:
remove-older-thanremoves volumes older than a specified age.remove-all-but-n-fullkeeps only the requested number of full chains.remove-all-inc-of-but-n-fullremoves incrementals associated with full chains outside the number you retain.
Run cleanup against the exact destination used by the backup job, and follow the confirmation requirements of your installed version. A typical policy might be expressed as commands such as:
duplicity remove-older-than 12M sftp://backupuser@backup.example/ubuntu-data
duplicity remove-all-but-n-full 2 sftp://backupuser@backup.example/ubuntu-data
duplicity remove-all-inc-of-but-n-full 2 sftp://backupuser@backup.example/ubuntu-data
Those values are examples of policy syntax, not a universal retention recommendation. Test a restore from the oldest point you intend to keep before running destructive cleanup. If the test fails, stop deleting volumes and repair the key, backend access, or chain first.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Check a collection and perform a restore
Inspect the available volumes
Use the same destination credentials and GPG environment as the scheduled job:
duplicity collection-status sftp://backupuser@backup.example/ubuntu-data
duplicity list-current-files sftp://backupuser@backup.example/ubuntu-data
collection-status helps reveal whether the backend contains a coherent set of full and incremental volumes. list-current-files shows the latest file listing so you can verify that expected paths are present without restoring everything.
Recommended Free Tools
Restore to a staging directory
Never make the first restore directly over a live system. Create an empty staging directory and restore the latest state:
mkdir -p /restore-test
PASSPHRASE="$(cat /etc/duplicity/passphrase)" duplicity
restore
sftp://backupuser@backup.example/ubuntu-data
/restore-test
If the key is managed by an agent, add --use-agent and ensure the agent is usable by the account executing the command. To restore one path, use Duplicity's file-selection option with the path as recorded in the archive; verify the exact syntax with the installed version's help output before a production recovery.
Restore after the Ubuntu server is lost
- Provision a replacement Ubuntu system and install Duplicity, GnuPG, and the tools required to reach the backend.
- Recover the GPG private key, passphrase, and signing key from the separate recovery location. Import the private key into the replacement system's GPG home; do not expect the encrypted volumes to be decryptable without it.
- Install or retrieve the destination credentials and SSH host-verification data, or the object-store credentials, using the least privilege needed to read the backup.
- Run
duplicity collection-statusagainst the remote destination. This confirms that the replacement can see the expected chain before you attempt a large restore. - Restore into a staging path, inspect ownership, permissions, symbolic links, configuration, and application data, then copy or mount the recovered data into its final locations.
- Document the recovery result and preserve the original encrypted volumes until the replacement system has been tested in service.
A lost private key or forgotten passphrase is a hard recovery boundary. The storage backend cannot decrypt the archive for you, and a new key cannot retroactively open volumes encrypted to the old key.
Troubleshoot the failures that matter most
GPG reports that it cannot decrypt
- Confirm that the private key, not only the public key, is imported for the account running the restore.
- Check that the passphrase source is readable and that an agent is running in the scheduled account's environment.
- Verify that the key ID and GPG home are the intended ones; root and a service account may use different keyrings.
The job works interactively but fails on schedule
- Use absolute paths such as
/usr/bin/duplicity; timers and cron provide a smaller environment than an interactive shell. - Check file ownership and permissions for the source, passphrase, GPG home, SSH keys, and destination configuration.
- Read the systemd journal or cron log and make the wrapper return Duplicity's nonzero exit status so monitoring can detect the failure.
The remote backend refuses access
- Test network name resolution and connectivity from the Ubuntu host.
- For SSH backends, verify the remote account, directory permissions, private key, and host key.
- For S3 backends, verify that the credentials can list and write the selected bucket prefix and that an object lifecycle rule has not removed required volumes.
A root backup crashes or hangs
Check that --exclude /proc is present when the source is /. Also review the log for unreadable files and decide whether those paths should be corrected or explicitly excluded; do not silently accept a partial backup.
A restore is missing recent files
Inspect collection-status and the scheduler log. The latest run may have failed after an earlier incremental, the destination may contain an incomplete chain, or retention may have removed the required full. Correct the failed run and restore from a known-good point before deleting anything else.
Quick Recap
Operational checklist
- Run one manual backup with the exact account, script, destination, and GPG setup used by automation.
- Confirm that the first run is full and that a later run produces an incremental.
- Verify the one-month full interval or replace it with the interval required by your recovery policy.
- Keep GPG private-key material, passphrases, signing keys, and destination credentials outside the backed-up host.
- Monitor exit status and age of the last successful run.
- Perform a staging restore on a schedule, not only after a disaster.
- Run retention commands only after the restore test succeeds and the retained horizon is documented.
- For root backups, retain the
--exclude /procsafeguard.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

