cron - это планировщик задач, использующийся для периодического выполнения заданий в заданное время. Он уже встроен в DD-WRT, но там все сценарии можно вносить только через веб морду, а при использовании optware нам будет удобнее настроить его запуск и некоторые параметры "под себя"
Отключаем его в вебморде, заходим в раздел Administration/Management и там выбираем Disable рядом с пунктом Cron, а потом нажимаем Apply Settings
Создаем директорию для crontabs
mkdir /etc/crontabs
и создаем скрипт, который будет загружать cron при запуске роутера
vi /opt/etc/init.d/S10cron
нажимаем [Insert], а потом добавляем туда следующие строки:
source /mnt/root/.profile
kill -9 $(pidof crond)
/opt/usr/sbin/crond
потом нажимаем [Esc] и ":" затем "w" и затем "q" (как работать с редактором vi вы можете прочитать тут)
Делаем наш скрипт запуска cron при загрузке исполняемым:
chmod a+x /opt/etc/init.d/S10cron
Создаем несколько каталогов, чтобы не редактировать потом каждый раз crontab. Достаточно будет потом поместить скрипт в нужную папку и он будет выполнятся в установленный нами промежуток времени (названия папок говорят сами за себя )
mkdir /opt/etc/cron.5mins
mkdir /opt/etc/cron.hourly
mkdir /opt/etc/cron.daily
mkdir /opt/etc/cron.weekly
mkdir /opt/etc/cron.monthly
создаем скрипт run-parts
vi /opt/bin/run-parts
c таким содержимым:
#!/bin/sh
#
# runparts.sh by macsat@macsat.com
# intended for use with cron
#
# based on rc.unslung by unslung guys :-)
#
if [ -z "$1" ]
then
echo "Usage : $0 "
fi
RUNDIR=$1"/*"
for i in $RUNDIR ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
и делаем его исполняемым
chmod +x /opt/bin/run-parts
после этого наконец то запускаем cron
/opt/etc/init.d/S10cron
и настраиваем файл заданий crontabs
crontab -e
нажимаем [Insert], а потом добавляем туда следующие строки:
*/5 * * * * run-parts /opt/etc/cron.5mins
01 * * * * run-parts /opt/etc/cron.hourly
02 4 * * * run-parts /opt/etc/cron.daily
22 4 * * 0 run-parts /opt/etc/cron.weekly
42 4 1 * * run-parts /opt/etc/cron.monthly
потом нажимаем [Esc] и ":" затем "w" и затем "q" (и тут тоже vi :)
посмотреть наше расписание можно командой
crontab -l
Теперь для чистоты эксперимента перезапускаем роутер
reboot
и пользуемся настроенным cron
ЗЫ: на всякий случай приведу периодичность запуска скриптов из каждой созданных нами папok:
cron.5mins - каждые 5 минут
cron.hourly - каждый час
cron.daily - ежедневно
cron.weekly - еженедельно
cron.monthly - ежемесячно
и не забывайте каждый скрипт, положенный в них делать исполняемым командой chmod a+x
Комментариев нет:
Отправить комментарий