Ulli Horlacher <framstag@rus.uni-stuttgart.de> wrote:
--- Start running command LIST at 08:57:10.534 --- Traceback (innermost last): File "<string>", line 106, in <module> File "<string>", line 92, in with_tempdir File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1538, in main do_backup(action) File "/usr/lib/python3/dist-packages/duplicity/dup_main.py", line 1558, in do_backup col_stats = dup_collections.CollectionsStatus(globals.backend, File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 744, in set_values self.get_backup_chains(partials + backend_filename_list) File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 896, in get_backup_chains add_to_chains(s) File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 884, in add_to_chains log.Debug(_(u"Found backup chain %s") % (new_chain.short_desc())) File "/usr/lib/python3/dist-packages/duplicity/dup_collections.py", line 408, in short_desc return u"[%s]-[%s]" % (dup_time.timetopretty(self.start_time), File "/usr/lib/python3/dist-packages/duplicity/dup_time.py", line 169, in timetopretty return time.asctime(time.localtime(timeinseconds)) File "/opt/s3tik/bin/duplicity", line 6, in isodate return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds)) TypeError: an integer is required (got type time.struct_time)
08:57:10.886 Task 'LIST' failed with exit code '30'. --- Finished state FAILED 'code 30' at 08:57:10.886 - Runtime 00:00:00.351 ---
root@obertux:/opt/s3tik/bin# cat duplicity #!/usr/bin/python3
import time
def isodate(timeinseconds): return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds))
time.asctime = isodate;
with open("/usr/bin/duplicity") as duplicity: code = duplicity.read() exec(code)
Habs nun geaendert zu: root@obertux:/opt/s3tik/bin# cat duplicity #!/usr/bin/python3 from duplicity import dup_time def isodate(timeinseconds): return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(timeinseconds)) dup_time.timetopretty = isodate; with open("/usr/bin/duplicity") as duplicity: code = duplicity.read() exec(code) Ich definiere also nicht time.asctime() um, sondern dup_time.timetopretty() Ist eh besser. Und DAMIT funktioniert es: root@obertux:/opt/s3tik/bin# duply root list | tail 2021-01-20 17:55:59 server/tacitus 2021-01-20 17:55:59 server/unifex 2021-01-20 17:56:00 server/zentux 2021-01-20 17:56:00 server/zoo 2022-12-03 06:57:02 tmp 2022-12-03 09:43:51 tmp/.zz 2015-04-28 15:08:50 vcli 2013-09-11 17:02:36 vminfo_example 2013-06-24 13:33:40 vmti --- Finished state OK at 09:17:08.178 - Runtime 00:00:01.087 --- ==> Ich bekomme jetzt ISO Datum! Und ich weiss nun, wie man Python-Programmen geaenderte Funktionen unterschieben kann, ohne den Original Source Code aendern zu muessen. Den Trick kann ich spaeter bestimmt noch oefters gebrauchen! Sehr gut! -- Ullrich Horlacher Server und Virtualisierung Rechenzentrum TIK Universitaet Stuttgart E-Mail: horlacher@tik.uni-stuttgart.de Allmandring 30a Tel: ++49-711-68565868 70569 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/