bit-team / backintime

Back In Time - An easy-to-use backup tool for GNU Linux using rsync in the back
https://backintime.readthedocs.io
GNU General Public License v2.0
1.9k stars 175 forks source link

Schedule not working after restore (Garuda Arch Linux) #1737

Closed coffseducation closed 4 weeks ago

coffseducation commented 1 month ago

I have restored my /home folder to a new sytem - Garuda Arch Linux from Kubuntu. I retored the config and have the snapshots listed in the gui. Opening the settings I see that my schedule is still set - but no backup happens at the allocated time. Changing the time makes no difference either.

nb Manually activating snapshots works.

One thing I noticed is that the backup config file says the profile1 whereas in the gui the setting the profile is listed as 'Main profile'

How do I get the schedule to run again?

backintime --diagnostics
QSettings::value: Empty key passed
{
"backintime": {
"name": "Back In Time",
"version": "1.4.4-dev.73caea7b",
"running-as-root": false,
"latest-config-version": 6,
"local-config-file": "/home/UsernameReplaced/.config/backintime/config",
"local-config-file-found": true,
"global-config-file": "/etc/backintime/config",
"global-config-file-found": false,
"started-from": "/usr/share/backintime/common",
"user-callback": "/home/UsernameReplaced/.config/backintime/user-callback",
"keyring-supported": true
},
"host-setup": {
"OS": {
"/etc/os-release": "Garuda Linux",
"/etc/arch-release": "\n",
"/etc/lsb-release": "DISTRIB_ID=Garuda\nDISTRIB_RELEASE=Soaring\nDISTRIB_DESCRIPTION=\"Garuda Linux Bird of Prey\"\nDISTRIB_CODENAME=\"BirdOfPrey\"\n"
},
"platform": "Linux-6.9.2-zen1-1-zen-x86_64-with-glibc2.39",
"system": "Linux #1 ZEN SMP PREEMPT_DYNAMIC Sun, 26 May 2024 01:30:09 +0000",
"display-system": "x11",
"locale": "en_GB, UTF-8",
"PATH": "/home/UsernameReplaced/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl",
"RSYNC_OLD_ARGS": "(not set)",
"RSYNC_PROTECT_ARGS": "(not set)"
},
"python-setup": {
"python": "3.12.3 main Apr 23 2024 09:16:07 CPython GCC 13.2.1 20240417",
"python-executable": "/usr/bin/python3",
"python-executable-symlink": true,
"python-executable-resolved": "/usr/bin/python3.12",
"sys.path": [
"/usr/share/backintime/qt/plugins",
"/usr/share/backintime/common/plugins",
"/usr/share/backintime/plugins",
"/usr/share/backintime/common",
"/usr/lib/python312.zip",
"/usr/lib/python3.12",
"/usr/lib/python3.12/lib-dynload",
"/usr/lib/python3.12/site-packages"
],
"qt": {
"Version": "PyQt 6.7.0 / Qt 6.7.1",
"Theme": "korla",
"Theme Search Paths": [
"/home/UsernameReplaced/.local/share/icons",
"/var/lib/flatpak/exports/share/icons",
"/usr/share/icons",
"/home/UsernameReplaced/.icons",
":/icons"
],
"Fallback Theme": "breeze",
"Fallback Search Paths": []
}
},
"external-programs": {
"rsync": {
"version": "3.3.0",
"protocol": "31.0",
"capabilities": {
"file_bits": 64,
"inum_bits": 64,
"timestamp_bits": 64,
"long_int_bits": 64,
"socketpairs": true,
"symlinks": true,
"symtimes": true,
"hardlinks": true,
"hardlink_specials": true,
"hardlink_symlinks": true,
"IPv6": true,
"atimes": true,
"batchfiles": true,
"inplace": true,
"append": true,
"ACLs": true,
"xattrs": true,
"secluded_args": "optional",
"iconv": true,
"prealloc": true,
"stop_at": true,
"crtimes": false
},
"optimizations": {
"SIMD_roll": true,
"asm_roll": false,
"openssl_crypto": true,
"asm_MD5": false
},
"checksum_list": [
"xxh128",
"xxh3",
"xxh64",
"md5",
"md4",
"sha1",
"none"
],
"compress_list": [
"zstd",
"lz4",
"zlibx",
"zlib",
"none"
],
"daemon_auth_list": [
"sha512",
"sha256",
"sha1",
"md5",
"md4"
]
},
"ssh": "OpenSSH_9.7p1, OpenSSL 3.3.0 9 Apr 2024",
"sshfs": "3.7.3",
"encfs": "(no encfs)",
"shell": "/usr/bin/fish",
"shell-version": "fish, version 3.7.1"
}
}
buhtz commented 1 month ago

Hello coffseducation ,

Thank you for taking the time to report the bug and providing the details. I appreciate your feedback.

´"version": "1.4.4-dev.73caea7b",`

How do you installed BIT?

One thing I noticed is that the backup config file says the profile1 whereas in the gui the setting the profile is listed as 'Main profile'

I don't understand this sentence. Can you please rephrase it?

How do I get the schedule to run again?

How was your schedule setup? There are a lot of options.

Please post the output crontab -l (but using the Code formatting feature of Microsoft GitHub to post it in monotype font face).

You could also have a look into the syslog. Maybe there you can see something.

If you have any more details to share, feel free to reach out.

Best regards,

coffseducation commented 1 month ago

How do you installed BIT?

I don't understand this sentence. Can you please rephrase it?

How do I get the schedule to run again?

The schedule is not working. It was set for 21.00. It has not run since restore. I changed the time in settings to Midnight hoping to re-set it. It still did not run at the set time.

crontab -l

Back In Time system entry, this will be edited by the gui:

0 0 * /usr/bin/nice -n19 /usr/bin/ionice -c2 -n7 /usr/bin/backintime backup-job >/dev/null

I cannot find /var/log/syslog*

buhtz commented 1 month ago

Hello coffseducation,

it is a bit hard to follow your answers. Please try to use the formatting options of Microsoft GitHub comments and also use the inline-reply method to answer the same way as I do. Read and answer in the GitHub web front-end and not via email please. Otherwise I am unable to help you.

How do you installed BIT?

with Octopi ... Version | 1.4.3.r31.g73caea7b-1 Depends On | backintime-cli-git ... ... Conflicts With | backintime ... Packager | Garuda Builder team@garudalinux.org

This looks wired. You somehow installed the latest (unstable! & unreleased!) development version of Back In Time. As we state in our install instruction this is discouraged and only for developers not for users. This version is unstable and theoretically you risk loosing your data.

What is "octopi"? To my knowledge it is a GNU Linux distribution for RaspberryPi. Garuda Arch Linux is an Arch-based distro where you usually use "pacman" to install packages.

Please contact the community of your GNU Linux distribution to find out how to install the latest stable release of Back In Time from the distributions official repository.

One thing I noticed is that the backup config file says the profile1 whereas in the gui the setting the profile is listed as 'Main profile'

I don't understand this sentence. Can you please rephrase it?

You have not answered this question.

It was set for 21.00.

This answer does not help. Which entry did you choose in the "Schedule" section on the "General" tab in the "Manage profiles" dialog?

I cannot find /var/log/syslog*

Please read again carefully. I also tried to improve this section of the FAQ with PR #1739 . Please see my draft. Is it clearer about how to read log entries?

EDIT: Note to myself. I verified that BIT does verify and update the crontab entries everytime it starts. So importing a config or just copy the config file from a previous installation wont't cause the problem. When BIT starts, it reads the schedule settings from config and write them to crontab if not yet present.

coffseducation commented 1 month ago

inline-reply method

Thanks for the link. It was for email and I am on the github site. Hopefully this is the correct method now.

This looks wired. You somehow installed the latest (unstable! & unreleased!) development version of Back In Time.

Yes, that was odd. I installed BiT with Octopi, which, yes, appears to use pacman as the package manager. Using the command line revealed a conflict which I removed. (I have rebooted and do not have the print, sorry!) backintime --diagnostics now shows "version": "1.4.3",

You have not answered this question.

The BiT gui settings in General has a profile called, 'Main profile' bit-settings-gui

Whereas in the config file located on my backup drive the profile appears to be listed as 'profile1' Is that an issue?

config.version=6 global.use_flock=false internal.manual_starts_countdown=4 profile1.qt.last_path=/home profile1.qt.places.SortColumn=1 profile1.qt.places.SortOrder=SortOrder.AscendingOrder profile1.qt.settingsdialog.exclude.SortColumn=1 profile1.qt.settingsdialog.exclude.SortOrder=SortOrder.AscendingOrder profile1.qt.settingsdialog.include.SortColumn=1 profile1.qt.settingsdialog.include.SortOrder=SortOrder.AscendingOrder profile1.schedule.custom_time=8,12,18,23 profile1.schedule.day=1 profile1.schedule.mode=20 profile1.schedule.repeatedly.period=1 profile1.schedule.repeatedly.unit=20 profile1.schedule.time=0 profile1.schedule.weekday=7 profile1.snapshots.backup_on_restore.enabled=true profile1.snapshots.bwlimit.enabled=false profile1.snapshots.bwlimit.value=3000 profile1.snapshots.continue_on_errors=true profile1.snapshots.copy_links=false profile1.snapshots.copy_unsafe_links=false profile1.snapshots.cron.ionice=true profile1.snapshots.cron.nice=true profile1.snapshots.cron.redirect_stderr=false profile1.snapshots.cron.redirect_stdout=true profile1.snapshots.dont_remove_named_snapshots=true profile1.snapshots.exclude.1.value=.gvfs profile1.snapshots.exclude.2.value=.cache/ profile1.snapshots.exclude.3.value=.thumbnails profile1.snapshots.exclude.4.value=.local/share/[Tt]rash profile1.snapshots.exclude.5.value=.backup profile1.snapshots.exclude.6.value=~ profile1.snapshots.exclude.7.value=.dropbox profile1.snapshots.exclude.8.value=/proc/ profile1.snapshots.exclude.9.value=/sys/ profile1.snapshots.exclude.10.value=/dev/ profile1.snapshots.exclude.11.value=/run/ profile1.snapshots.exclude.12.value=/etc/mtab profile1.snapshots.exclude.13.value=/var/cache/apt/archives/.deb profile1.snapshots.exclude.14.value=lost+found/ profile1.snapshots.exclude.15.value=/tmp/ profile1.snapshots.exclude.16.value=/var/tmp/ profile1.snapshots.exclude.17.value=/var/backups/ profile1.snapshots.exclude.18.value=.Private profile1.snapshots.exclude.19.value=/Backups profile1.snapshots.exclude.bysize.enabled=false profile1.snapshots.exclude.bysize.value=500 profile1.snapshots.exclude.size=19 profile1.snapshots.include.1.type=0 profile1.snapshots.include.1.value=/home profile1.snapshots.include.size=1 profile1.snapshots.local.nocache=false profile1.snapshots.local.password.save=false profile1.snapshots.local.password.use_cache=true profile1.snapshots.local_encfs.path=/Backups profile1.snapshots.log_level=3 profile1.snapshots.min_free_inodes.enabled=true profile1.snapshots.min_free_inodes.value=2 profile1.snapshots.min_free_space.enabled=true profile1.snapshots.min_free_space.unit=20 profile1.snapshots.min_free_space.value=30 profile1.snapshots.mode=local profile1.snapshots.no_on_battery=false profile1.snapshots.notify.enabled=true profile1.snapshots.one_file_system=false profile1.snapshots.path=/Backups profile1.snapshots.path.host=Vampa profile1.snapshots.path.profile=1 profile1.snapshots.path.user=root profile1.snapshots.preserve_acl=false profile1.snapshots.preserve_xattr=false profile1.snapshots.remove_old_snapshots.enabled=true profile1.snapshots.remove_old_snapshots.unit=80 profile1.snapshots.remove_old_snapshots.value=10 profile1.snapshots.rsync_options.enabled=false profile1.snapshots.rsync_options.value= profile1.snapshots.smart_remove=false profile1.snapshots.smart_remove.keep_all=2 profile1.snapshots.smart_remove.keep_one_per_day=7 profile1.snapshots.smart_remove.keep_one_per_month=24 profile1.snapshots.smart_remove.keep_one_per_week=4 profile1.snapshots.smart_remove.run_remote_in_background=false profile1.snapshots.ssh.check_commands=true profile1.snapshots.ssh.check_ping=true profile1.snapshots.ssh.cipher=default profile1.snapshots.ssh.host= profile1.snapshots.ssh.ionice=false profile1.snapshots.ssh.nice=false profile1.snapshots.ssh.nocache=false profile1.snapshots.ssh.path= profile1.snapshots.ssh.port=22 profile1.snapshots.ssh.prefix.enabled=false profile1.snapshots.ssh.prefix.value=PATH=/opt/bin:/opt/sbin:\$PATH profile1.snapshots.ssh.private_key_file=/home/anarcho/.ssh/id_rsa profile1.snapshots.ssh.user=root profile1.snapshots.take_snapshot_regardless_of_changes=false profile1.snapshots.use_checksum=false profile1.snapshots.user_backup.ionice=false profiles.version=1 qt.last_path=/home qt.logview.height=500 qt.logview.width=800 qt.main_window.files_view.date_width=69 qt.main_window.files_view.name_width=69 qt.main_window.files_view.size_width=69 qt.main_window.files_view.sort.ascending=true qt.main_window.files_view.sort.column=0 qt.main_window.height=910 qt.main_window.main_splitter_left_w=430 qt.main_window.main_splitter_right_w=912 qt.main_window.second_splitter_left_w=295 qt.main_window.second_splitter_right_w=594 qt.main_window.width=1349 qt.main_window.x=736 qt.main_window.y=315 qt.show_hidden_files=false

This answer does not help Hopefully the screenshot above helps explain.

Please read again carefully.

journalctl --identifier backintime did not print anything before but now works - due to the conflict removal?.

journalctl --identifier backintime May 29 23:43:44 Vampa backintime[26783]: DEBUG: [common/backintime.py:613 argParse] Used argument(s): {'debug': True, 'quiet': False} May 29 23:43:44 Vampa backintime[26783]: DEBUG: [common/backintime.py:614 argParse] Unknown argument(s): [] May 29 23:43:44 Vampa backintime[26783]: DEBUG: [common/backintime.py:513 startApp] backintime: {'name': 'Back In Time', 'version': '1.4.4-dev.73caea7b', 'running-as-root': False} May 29 23:43:44 Vampa backintime[26783]: DEBUG: [common/backintime.py:513 startApp] host-setup: {'OS': {'/etc/os-release': 'Garuda Linux', '/etc/arch-release': '\n', '/etc/lsb-release': 'DISTRIB_ID=Garuda\nDISTRIB_RELEASE=Soaring\nDIS> May 29 23:43:44 Vampa backintime[26783]: Main profile(1) :: DEBUG: [common/configfile.py:591 Config.setCurrentProfile] Change current profile: 1=Main profile May 29 23:43:44 Vampa backintime[26783]: Main profile(1) :: DEBUG: [common/tools.py:227 initiate_translation] No language code. Use systems current locale. May 29 23:43:44 Vampa backintime[26783]: Main profile(1) :: DEBUG: [common/backintime.py:696 getConfig] config file: /home/anarcho/.config/backintime/config May 29 23:43:44 Vampa backintime[26783]: Main profile(1) :: DEBUG: [common/backintime.py:697 getConfig] share path: /home/anarcho/.local/share/backintime May 29 23:43:44 Vampa backintime[26783]: Main profile(1) :: DEBUG: [common/backintime.py:698 getConfig] profiles: 1=Main profile May 30 00:16:06 Vampa backintime[29204]: Main profile(1) :: INFO: Lock May 30 00:16:06 Vampa backintime[29204]: Main profile(1) :: INFO: Take a new snapshot. Profile: 1 Main profile May 30 00:16:06 Vampa backintime[29204]: Main profile(1) :: INFO: Call rsync to take the snapshot May 30 00:23:34 Vampa backintime[29204]: Main profile(1) :: INFO: Save config file May 30 00:23:34 Vampa backintime[29204]: Main profile(1) :: INFO: Save permissions May 30 00:24:36 Vampa backintime[29204]: Main profile(1) :: INFO: Create info file May 30 00:24:38 Vampa backintime[29204]: Main profile(1) :: INFO: Unlock

Apologies for bad formatting and thanks for your patience. Please let me know if corrections or more info is needed. Thanks.

buhtz commented 1 month ago

Please set the schedule to "Every hour", report again crontab -l and observe the behavior of BIT in the syslog (e.g. via journalctl -f --identifier backintime).

I am assuming the scheduling is OK, but when BIT runs there might be some errors. You will see them in the syslog then.

EDIT:

The BiT gui settings in General has a profile called, 'Main profile' ... Whereas in the config file located on my backup drive the profile appears to be listed as 'profile1' Is that an issue?

The string "profile1" in the config file is the name of a variable and not of the profile itself. Not an issue.

EDIT2: Octopi seems to be a graphical front-end for pacman.

coffseducation commented 4 weeks ago

journalctl -f --identifier backintime

crontab -l

Back In Time system entry, this will be edited by the gui:

0 13 * /usr/bin/nice -n19 /usr/bin/ionice -c2 -n7 /usr/bin/backintime backup-job >/dev/null

crontab -l

Back In Time system entry, this will be edited by the gui:

0 13 * /usr/bin/nice -n19 /usr/bin/ionice -c2 -n7 /usr/bin/backintime backup-job >/dev/null

I set this in the root version of BiT. Note the 13!

I checked the non-root version and it was set for 13:00! Changing it to hour 5 in the non-root version gives: crontab -l

Back In Time system entry, this will be edited by the gui:

0 5 * /usr/bin/nice -n19 /usr/bin/ionice -c2 -n7 /usr/bin/backintime backup-job >/dev/null

Changing it to 5 min in the non-root version gives: crontab -l

Back In Time system entry, this will be edited by the gui:

/5 * /usr/bin/nice -n19 /usr/bin/ionice -c2 -n7 /usr/bin/backintime backup-job >/dev/null

The non-root version is the only version making changes. No version however will run the scheduler. Changes in root or non-root BiT have not effect.

journalctl -f --identifier backintime

No print.

I then removed all config files: root .config .local

and restarted BiT root. I imported the config. The snapshot list populates. Schedule still does not work.

crontab -l

crontab -l

Back In Time system entry, this will be edited by the gui:

/5 * /usr/sbin/nice -n19 /usr/sbin/ionice -c2 -n7 /usr/sbin/backintime backup-job >/dev/null

journalctl -f --identifier backintime

May 30 22:48:31 Vampa backintime[16046]: Main profile(1) :: ERROR: pidfile /root/.local/share/backintime/password_cache/PID already exists. Daemon already running?

buhtz commented 4 weeks ago

Maybe Garuda Arch Linux is one of the distros where Cron does exist but is disabled by default. Please contact the folks of your distro to be sure. Have a look at this forum posting: https://forum.garudalinux.org/t/cron-installed-but-not-enabled/26016

Add this line to your crontab (via crontab -e)

* * * * * echo "Cron is running" >> /tmp/cron_test.log

After one minute you should see "Cron is running" entries in the file /tmp/cron_test.log.

Post the output of the following commands please:

$ ps aux | grep cron
$ systemctl status cron
$ systemctl status crond

I assuming that Cron does not run on your system. Please open a ticket at your distros package manager and describe the problem. She/he need to decide how to handle it. A running Cron instance is a dependency for Back In Time. So it is a bug in your Distro and not on our site.

coffseducation commented 4 weeks ago
          • echo "Cron is running" >> /tmp/cron_test.log

ps aux | grep cron root 5781 0.0 0.0 17876 9476 pts/2 S+ 01:24 0:00 sudo nano crontab.f6ETFr root 5785 0.0 0.0 17876 2528 pts/3 Ss 01:24 0:00 sudo nano crontab.f6ETFr root 5786 0.0 0.0 8088 5552 pts/3 S+ 01:24 0:00 nano crontab.f6ETFr anarcho 5935 0.0 0.0 10692 5736 pts/0 S+ 01:26 0:00 ugrep --color=auto cron

systemctl status cron

systemctl status cron Unit cron.service could not be found.

systemctl status crond

No print

coffseducation commented 4 weeks ago

RESOLVED ✅

systemctl start cronie.service

Thanks!

buhtz commented 4 weeks ago

Again I strongly recommend not to use an Arch based distribution. The Back In Time version your distribution offers you is not maintained by Arch or Garuda. And it is buggy because install BIT should activate cron. Try Debian based distro. There you have well maintained packages.

btw: I am even not able to start the installer of Garuda on a VirtualBox VM.