Можно использовать диалоговую утилиту. Это может работы как внутри, так и снаружи терминала.
Для получения его на X-сервере можно использовать его xdialog или gdialog/zenity вариант. Обратите внимание, что zenity является recommendend для XFCE, начиная с его использования GTK +. На самом деле я думаю, что Kdialog является вариантом KDE Xdialog.
Вот простой сценарий Zenity, работая на X-сервере с да/нет поле:
DIALOG=zenity
$DIALOG --title " My first dialog" --clear \
--yesno "Hi, this is my first dialog" 10 30
Вот простое учебное руководство с различным примером о другом доступном диалоговом окне. И существует также хорошее учебное руководство о zenity.
О Вашем графическом диалоговом окне прогресса существует то, выделенное с этой целью. Вот демонстрационный сценарий документации:
#!/bin/sh
(
echo "10" ; sleep 1
echo "# Updating mail logs" ; sleep 1
echo "20" ; sleep 1
echo "# Resetting cron jobs" ; sleep 1
echo "50" ; sleep 1
echo "This line will just be ignored" ; sleep 1
echo "75" ; sleep 1
echo "# Rebooting system" ; sleep 1
echo "100" ; sleep 1
) |
zenity --progress \
--title="Update System Logs" \
--text="Scanning mail logs..." \
--percentage=0
if [ "$?" = -1 ] ; then
zenity --error \
--text="Update canceled."
fi
logrotate
используется системой для вращения журналов, таким образом, у Вас есть 2 варианта. Можно или включить вращение их, приложение входит в системные вращения или установку собственное и или выполненный их вручную или от crontab пользователя root (Предполагающий, что приложение направляющих запущено как корень, учитывая, он - каталог, /root/...
).
Для установки logrotation в существующих ранее системы просто добавляют новый файл к каталогу /etc/logrotate.d
. Назовите его railsapp.conf
. Я использовал бы другие примеры там для построения его. Также собрат с logrotate
страница справочника.
Если Вы хотите выполнить свой собственный экземпляр logrotate
только необходимо предоставить ему переключатели командной строки, чтобы сделать так.
/etc/logrotate.conf
/root/rails_logrotate.conf
Выполните его
# 1st time
$ logrotate -d -f -s $HOME/my_logrotate.state logrotate.conf
# afterwards
$ logrotate -d -s $HOME/my_logrotate.state logrotate.conf
Если вещи смотрят хорошо, можно повторно выполнить эти команды без -d
переключатель. Это для отладки целей только и на самом деле не сделает ни одной из задач, просто показать Вам, что она сделала бы.
$ logrotate -s $HOME/my_logrotate.state logrotate.conf
Вы могли также использовать -v
переключатель для создания этого подробным, подобным выводу замеченный при использовании -d
переключатель.
Запустите с этого файла журнала.
$ dd if=/dev/zero of=afile bs=1k count=10k
10240+0 records in
10240+0 records out
10485760 bytes (10 MB) copied, 0.0702393 s, 149 MB/s
$ ll afile
-rw-rw-r-- 1 saml saml 10485760 Aug 6 14:37 afile
$ touch -t 201307010101 afile
$ ll afile
-rw-rw-r-- 1 saml saml 10485760 Jul 1 01:01 afile
Теперь выполненный logrotate
$ logrotate -v -f -s $HOME/my_logrotate.state logrotate.conf
reading config file logrotate.conf
reading config info for /home/saml/afile
Handling 1 logs
rotating pattern: /home/saml/afile forced from command line (1 rotations)
empty log files are rotated, old logs are removed
considering log /home/saml/afile
log needs rotating
rotating log /home/saml/afile, log->rotateCount is 1
dateext suffix '-20130806'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
renaming /home/saml/afile to /home/saml/afile-20130806
creating new /home/saml/afile mode = 0664 uid = 500 gid = 501
Проверьте результаты
$ ll afile*
-rw-rw-r-- 1 saml saml 0 Aug 6 14:40 afile
-rw-rw-r-- 1 saml saml 10485760 Jul 1 01:01 afile-20130806
Для создания этого выполнения каждое воскресенье, Вы могли создать следующую crontab запись для пользователя root.
$ crontab -e
Добавьте следующие строки:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
0 0 * * sun logrotate -v -f -s $HOME/my_logrotate.state $HOME/logrotate.conf
Затем сохраните вышеупомянутое.
Можно также использовать эти типы ярлыков вместо того, чтобы указать фактические дни, минуты, secs, и т.д.
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".