Как я могу автоматически сохранить список открытых файлов в Geany, cron или другим способом?
Я использую Geany IDE для программирования, и она не позволяет перезагружать мои ранее открытые файлы, например, после отключения питания. Я обнаружил, что у Geany есть функция командной строки, которая возвращает список всех открытых файлов в редакторе, поэтому я надеялся, что смогу быстро написать команду cron, которая будет автоматически сохранять этот список каждый час или около того.
В настоящее время у меня есть эта строка в моем crontab:
0 * * * * ~/bin/save_geany_files
и скрипт содержит только одну строку:
geany --list-documents > ~/geany_files.txt
Это не работает. Я заметил, что функция --list-documents в Geany должна вызываться одним и тем же пользователем (я думаю), поэтому я попытался добавить в скрипт "su - [myusername]", но, очевидно, su нельзя использовать из задания cron? Итак, я в недоумении, как автоматизировать это. Я открыт для любых других решений моей проблемы, хотя опции / плагины Geany кажутся ненадежными (вот почему я попробовал это в первую очередь)
1 ответ
Запустив crontab следующим образом:
0 * * * * ~/bin/save_geany_files 2> /tmp/geanyerror.log
Я нашел это сообщение об ошибке в /tmp/geanyerror.log:
Geany: cannot open display
Я решил это, добавив следующую строку в.bashrc:
xhost local:arune > /dev/null
(где arune - мое имя пользователя) и изменив мой crontab на
0 * * * * export DISPLAY=:0.0 && ~/bin/save_geany_files 2> /tmp/geanyerror.log
Мой собственный скрипт save_geany_files выглядит так:
#!/bin/bash
cp /home/arune/geany/savenew.txt /home/arune/geany/saveold.txt
/usr/bin/geany --list-documents > /home/arune/geany/savenew.txt
хранить "резервную копию" в течение одного дополнительного часа.