ключевое слово для поиска cron
ЗАДАЧА:
требуется все файлы из папки Z:\ftp_pub\xz
переносить в 23.59
в папку Z:\ftp_pub\old\ТЕКУШАЯ ДАТА
ТЕКУШАЯ ДАТА - формата дд_мм_гг
ЗЫ
если можно поподробней, как это реализовать... (наверное просто)
ЗЗЫ
Z:\ftp_pub\xz - путь из под ВЫНИ (на подключенный диск)
Last edited by lexass; 12-04-2007 at 23:32.
ключевое слово для поиска cron
искал, осознание не настало!
в теории понимаю, там должно быть что-то типа:
cp /tmp/harddisk/ftp_pub/xz /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y`
при попытке просто выполнить эту строку, ответ:
cp: /tmp/harddisk/ftp_pub/xz: omitting directory
ЗЫ
что всетаки сделать чтоб работало
и как заставить выполнятся по расписанию?
гуру ПЛЗ не посылайте ни куда, просто чиркните несколько доходчивых строк!
во! вот это мне понравилось: `date -u +%d_%m_%Y` Надо взять на вооружение
Вообще копирование должно выглядеть по-моему так, причем директория должна быть создана заранее:
cp /tmp/harddisk/ftp_pub/xz/* /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y`
а может быть и cp -r, возможно, последний аргумент взять в кавычки
Теперь насчет расписания.
1) установить cron
2) создать файл, следующего содержания:
сделать его исполняемым и положить в директорию /opt/etc/cron.dailyCode:#! /bin/sh mkdir `date -u +%d_%m_%Y` cp /tmp/harddisk/ftp_pub/xz/* /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y`
этот файл надо отработать заранее, чтобы работал корректно при ручном запуске
3) и, наконец, в /opt/etc/crontab должена быть следующая строка:
59 23 * * * root run-parts /opt/etc/cron.daily
можно вот тут поподробней...сделать его исполняемым и положить в директорию /opt/etc/cron.daily
этот файл надо отработать заранее, чтобы работал корректно при ручном запуске
и видимо :
mkdir /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y`
и вот это:
нету такого файла, могу создать (создал, как оно все должно заработать???)3) и, наконец, в /opt/etc/crontab должена быть следующая строка:
59 23 * * * root run-parts /opt/etc/cron.daily
Last edited by lexass; 14-04-2007 at 12:58.
>сделать его исполняемым и положить в директорию /opt/etc/cron.daily
chmod 755 filename
cp filename /opt/etc/cron.daily
>этот файл надо отработать заранее, чтобы работал корректно при ручном запуске
то что я написал --- это теория. Я не проверял выполняется оно или нет. Так вот и надо убедиться, что оно работает так как хотелось бы, перед тем как сутки ждать запуска через крон
насчет mkdir согласен
инструкция по установке cron здесь: http://wl500g.info/showthread.php?t=5909&highlight=cron там еще и run-parts надо создавать
Last edited by al37919; 14-04-2007 at 13:09.
скажу честно, не хочется заниматься изучениями....
просто хочется чтоб все заработало и забыть!!!
ЗЫ
в ручном режиме это:
mkdir /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y`
cp /tmp/harddisk/ftp_pub/xz/* /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y`
работает на ура
ЗЗЫ
в аглицком не силен
а дальше собственно опять тестировать, для чего можно прописать вышеобсужденный скрипт не в daily а в 5minsCode:ipkg install cron 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 cat > crontab SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin MAILTO="" HOME=/ # ---------- ---------- Default is Empty ---------- ---------- # # Syntax for lines is : minute hour day month dayofweek command # */5 * * * * admin run-parts /opt/etc/cron.5mins 0 * * * * admin run-parts /opt/etc/cron.hourly 59 23 * * * admin run-parts /opt/etc/cron.daily 0 0 * * 0 admin run-parts /opt/etc/cron.weekly 0 0 1 * * admin run-parts /opt/etc/cron.monthly нажать control-D cat > /opt/bin/run-parts #!/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 нажать control-D chmod +x /opt/bin/run-parts
это ВСЕ я уже сделал!!!
т.е. cron.daily
просто перетащить в Z:\opt\etc\cron.5mins\
и ждать???
ну вообще то крон еще и запустить надо. Он запускается скриптом /opt/etc/init.d/S10cron или перезагрузкой. Далее за его жизнедеятельностью можно наблюдать в /tmp/syslog.log
[admin@WL-500g root]$ top Mem: 16340K used, 13776K free, 0K shrd, 2084K buff, 6704K cached
Load average: 0.12, 0.05, 0.02 (State: S=sleeping R=running, W=waiting)
PID USER STATUS RSS PPID %CPU %MEM COMMAND
155 admin R 436 146 2.8 1.4 top
141 admin S 1136 1 0.0 3.7 smbd
139 admin S 1096 1 0.0 3.6 nmbd
107 admin S 748 1 0.0 2.4 pppd
1 admin S 684 0 0.0 2.2 init
146 admin S 556 60 0.0 1.8 sh
76 admin S 532 1 0.0 1.7 nas
131 admin S 492 1 0.0 1.6 upnp
110 admin S 484 1 0.0 1.6 watchdog
112 admin S 460 107 0.0 1.5 sh
74 nobody S 436 1 0.0 1.4 dnsmasq
122 admin S 428 1 0.0 1.4 pptp
113 admin S 412 112 0.0 1.3 pptp
137 admin S 412 1 0.0 1.3 stupid-ftpd
71 admin S 400 1 0.0 1.3 syslogd
65 admin S 376 1 0.0 1.2 httpd
70 admin S 368 1 0.0 1.2 klogd
105 admin S 356 1 0.0 1.1 igmpproxy
94 admin S 344 1 0.0 1.1 rcamdmain
115 admin S 340 110 0.0 1.1 ntp
[admin@WL-500g root]$ /tmp/syslog.log
-sh: /tmp/syslog.log: Permission denied
какой проц. отвечает за КРОН, что-то думаю нет его...
как вааще он живет - загадка!?!
после : /opt/etc/init.d/S10cron
появляется
184 admin S 360 1 0.0 1.1 cron
а как его автоматом запустить???
прошло досаточно время
в Z:\ftp_pub\backup ничего нет!
Last edited by lexass; 14-04-2007 at 16:16.
в том что возвращает top cron не видно, т.е. он не запущен. Кстати, более подходящая комманда для просмотра запущенных процессов --- ps . Но в данном случае ничего не изменится.
вот теперь он действительно запущен.после : /opt/etc/init.d/S10cron
появляется
184 admin S 360 1 0.0 1.1 cron
То что находится в директории /opt/etc/init.d и начинается с заглавной буквы S будет запущено автоматом при перезагрузке (точнее это запускает /opt/etc/init.d/rc.unslung, который должен быть прописан в /usr/local/sbin/post-boot).
/tmp/syslog.log --- это обычный текстовой файл, за состоянием которого можно наблюдать, скажем путем tail -f /tmp/syslog.log[admin@WL-500g root]$ /tmp/syslog.log
-sh: /tmp/syslog.log: Permission denied
кстати, по ходу,интересует больше не ручной режим, а выполняемость файла, содержащегов ручном режиме это: ... работает на ура
Code:#! /bin/sh mkdir /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y` cp /tmp/harddisk/ftp_pub/xz/* /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y`
Last edited by al37919; 14-04-2007 at 18:06.
в /usr/local/sbin/post-boot ПУСТО!!!
ЗЫ
еще рекомендации....
нда, тяжелый случай. Лично я, при первоначальной уcтановке пользовался этой инструкцией (правда опять космополитичной ): http://wl500g.info/showthread.php?t=5909в /usr/local/sbin/post-boot ПУСТО!!!
Чтобы облегчить жизнь себе и, может быть, Вам приведу свой /usr/local/sbin/post-boot
Тут есть много лишнего, скажем так, лишнее все кроме того, что Вам нужно.PHP Code:
root@wl500g,/opt/etc> cat /usr/local/sbin/post-boot
#!/bin/sh
#ssh daemon
dropbear
# test if USB disc has been attached
# if not - then insert needed modules
if [ ! -d /dev/discs ]
then
insmod scsi_mod && insmod sd_mod && insmod usb-storage && sleep 2s
else
umount /tmp/harddisk && sleep 2s
fi
# disable hotplug
echo > /proc/sys/kernel/hotplug
#Wait for /opt to mount
mount /dev/discs/disc0/part2 /opt
#mount /dev/discs/disc0/part1 /opt
i=0
while [ $i -le 30 ]
do
if [ -d /opt/etc ]
then
break
fi
sleep 1
i=`expr $i + 1`
done
# enable hotplug
echo /sbin/hotplug > /proc/sys/kernel/hotplug
# Activate swap
swapon /dev/discs/disc0/part1
#mount procfs and devfs for chrooted debian
#[ -c /opt/debian/etc/rc.asus ] && chroot /opt/debian /etc/rc.asus && sleep 2s
mount -t proc proc /opt/debian/proc
mount -t devfs devfs /opt/debian/dev
mount -t ext3 /dev/discs/disc0/part2 /opt/debian/opt
sleep 2s
# Run all active services - active means starts with S
/opt/etc/init.d/rc.unslung
dropbear --- это демон ssh
далее при заглушенном stupid-ftpd необхдимо загрузить модули, которые позволят использовать usb носитель:
if [ ! -d /dev/discs ]
then
insmod scsi_mod && insmod sd_mod && insmod usb-storage && sleep 2s
fi
hotplug --- это мое изобретение и, скорее всего оно не нужно совсем ни здесь ни дальше
# disable hotplug
echo > /proc/sys/kernel/hotplug
Далее идет монтирование жесткого usb-диска
#Wait for /opt to mount
mount /dev/discs/disc0/part2 /opt
#mount /dev/discs/disc0/part1 /opt
i=0
while [ $i -le 30 ]
do
if [ -d /opt/etc ]
then
break
fi
sleep 1
i=`expr $i + 1`
done
опять скорее всего лишнее:
# enable hotplug
echo /sbin/hotplug > /proc/sys/kernel/hotplug
активация свопа
swapon /dev/discs/disc0/part1
это к делу вообще не относится.
#mount procfs and devfs for chrooted debian
#[ -c /opt/debian/etc/rc.asus ] && chroot /opt/debian /etc/rc.asus && sleep 2s
mount -t proc proc /opt/debian/proc
mount -t devfs devfs /opt/debian/dev
mount -t ext3 /dev/discs/disc0/part2 /opt/debian/opt
sleep 2s
Ну и наконец --- автозапуск того, что лежит в директории /opt/etc/init.d и начинается с S
# Run all active services - active means starts with S
/opt/etc/init.d/rc.unslung
И в заключение совсем нескромный вопрос --- у Вас какая прошивка стоит --- олег или асус?
можно лишнее убрать и оставить нужное?!
паршивка 1.9.2.7-7g
в /usr/local/sbin/post-boot ПУСТО!!!
Last edited by lexass; 14-04-2007 at 19:32.