Tue 10 Apr 2007 03:49:18 PM UTC, comment #3:
I have seen this behavior as well. It seems that rdiff-backup dies with an exception when you call --remove-older-than with a number of sessions that is (actual number + 1). For instance, the system directory has 13 increments, one increment per session:
<code># rdiff-backup -l system
Found 13 increments:
increments.2007-03-28T04:02:13-05:00.dir Wed Mar 28 04:02:13 2007
increments.2007-03-29T04:04:02-05:00.dir Thu Mar 29 04:04:02 2007
increments.2007-03-30T04:01:33-05:00.dir Fri Mar 30 04:01:33 2007
increments.2007-03-31T04:01:39-05:00.dir Sat Mar 31 04:01:39 2007
increments.2007-04-01T04:05:27-05:00.dir Sun Apr 1 04:05:27 2007
increments.2007-04-02T04:01:29-05:00.dir Mon Apr 2 04:01:29 2007
increments.2007-04-03T04:01:32-05:00.dir Tue Apr 3 04:01:32 2007
increments.2007-04-04T04:12:17-05:00.dir Wed Apr 4 04:12:17 2007
increments.2007-04-05T04:01:08-05:00.dir Thu Apr 5 04:01:08 2007
increments.2007-04-06T04:23:33-05:00.dir Fri Apr 6 04:23:33 2007
increments.2007-04-07T04:01:18-05:00.dir Sat Apr 7 04:01:18 2007
increments.2007-04-08T04:01:19-05:00.dir Sun Apr 8 04:01:19 2007
increments.2007-04-09T04:05:28-05:00.dir Mon Apr 9 04:05:28 2007
Current mirror: Tue Apr 10 04:01:28 2007
</code>
Here are the results of running --remove-older-than with session numbers from 13-20:
<code># rdiff-backup --remove-older-than 13B system
No increments older than Wed Mar 28 04:02:13 2007 found, exiting.
# rdiff-backup --remove-older-than 14B system
Traceback (most recent call last):
File "/usr/bin/rdiff-backup", line 23, in ?
rdiff_backup.Main.Main(sys.argv[1:])
File "/usr/lib/python2.4/site-packages/rdiff_backup/Main.py", line 285, in Main
take_action(rps)
File "/usr/lib/python2.4/site-packages/rdiff_backup/Main.py", line 263, in take_action
elif action == "remove-older-than": RemoveOlderThan(rps[0])
File "/usr/lib/python2.4/site-packages/rdiff_backup/Main.py", line 764, in RemoveOlderThan
time = rot_check_time(remove_older_than_string)
File "/usr/lib/python2.4/site-packages/rdiff_backup/Main.py", line 771, in rot_check_time
try: time = Time.genstrtotime(time_string)
File "/usr/lib/python2.4/site-packages/rdiff_backup/Time.py", line 223, in genstrtotime
return time_from_session(int(timestr[:-1]), rp)
File "/usr/lib/python2.4/site-packages/rdiff_backup/Time.py", line 192, in time_from_session
return session_times[-session_num-1]
IndexError: list index out of range
# rdiff-backup --remove-older-than 15B system
No increments older than Wed Mar 28 04:02:13 2007 found, exiting.
# rdiff-backup --remove-older-than 16B system
No increments older than Wed Mar 28 04:02:13 2007 found, exiting.
# rdiff-backup --remove-older-than 17B system
No increments older than Wed Mar 28 04:02:13 2007 found, exiting.
# rdiff-backup --remove-older-than 18B system
No increments older than Wed Mar 28 04:02:13 2007 found, exiting.
# rdiff-backup --remove-older-than 19B system
No increments older than Wed Mar 28 04:02:13 2007 found, exiting.
# rdiff-backup --remove-older-than 20B system
No increments older than Wed Mar 28 04:02:13 2007 found, exiting.
</code>
This may be fixed in later versions. I'm running:
<code># python -V
Python 2.4.3
# rdiff-backup --version
rdiff-backup 1.0.4
</code>
|