Bekijk de volledige versie : Total backup или "Запомнить всё"
ЗАДАЧА:
требуется все файлы из папки Z:\ftp_pub\xz
переносить в 23.59
в папку Z:\ftp_pub\old\ТЕКУШАЯ ДАТА
ТЕКУШАЯ ДАТА - формата дд_мм_гг
ЗЫ
если можно поподробней, как это реализовать... (наверное просто):confused:
ЗЗЫ
Z:\ftp_pub\xz - путь из под ВЫНИ (на подключенный диск)
ключевое слово для поиска 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) создать файл, следующего содержания:
#! /bin/sh
mkdir `date -u +%d_%m_%Y`
cp /tmp/harddisk/ftp_pub/xz/* /tmp/harddisk/ftp_pub/backup/`date -u +%d_%m_%Y`
сделать его исполняемым и положить в директорию /opt/etc/cron.daily
этот файл надо отработать заранее, чтобы работал корректно при ручном запуске
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
нету такого файла, могу создать (создал, как оно все должно заработать???)
>сделать его исполняемым и положить в директорию /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 надо создавать
скажу честно, не хочется заниматься изучениями....
просто хочется чтоб все заработало и забыть!!!
ЗЫ
в ручном режиме это:
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`
работает на ура
ЗЗЫ
в аглицком не силен :(
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
а дальше собственно опять тестировать, для чего можно прописать вышеобсужденный скрипт не в daily а в 5mins
это ВСЕ я уже сделал!!!
т.е. 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 ничего нет!
в том что возвращает 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).
[admin@WL-500g root]$ /tmp/syslog.log
-sh: /tmp/syslog.log: Permission denied
/tmp/syslog.log --- это обычный текстовой файл, за состоянием которого можно наблюдать, скажем путем tail -f /tmp/syslog.log
кстати, по ходу,
в ручном режиме это: ... работает на ура
интересует больше не ручной режим, а выполняемость файла, содержащего
#! /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`
в /usr/local/sbin/post-boot ПУСТО!!!
ЗЫ
еще рекомендации....
в /usr/local/sbin/post-boot ПУСТО!!!
нда, тяжелый случай. Лично я, при первоначальной уcтановке пользовался этой инструкцией (правда опять космополитичной :( ): http://wl500g.info/showthread.php?t=5909
Чтобы облегчить жизнь себе и, может быть, Вам приведу свой /usr/local/sbin/post-boot
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 ПУСТО!!!
#!/bin/sh
/opt/etc/init.d/rc.unslung
#!/bin/sh
/opt/etc/init.d/rc.unslung
это в post-boot
???
после flashfs save && flashfs commit && flashfs enable && reboot
нету в процессах cron
появляется только после /opt/etc/init.d/S10cron
ЗЫ
сАвсем запутался....:(
да , это /usr/local/sbin/post-boot
кроме того его надо сделать выполняемым:
chmod 755 /usr/local/sbin/post-boot
flashfs ... --- абсолютно корректно.
все обсуждаемые действия проводятся под рутом?
проверить выполнение post-boot вручную.
chmod 755 /usr/local/sbin/post-boot
flashfs save && flashfs commit && flashfs enable && reboot
впроцессах :
[admin@WL-500g root]$ top
КРОНА нет...:(
проверить выполнение post-boot вручную.
поподробней ПЛЗ
после /opt/etc/init.d/rc.unslung
КРОН в процессах есть...
ЗЫ
из папки xz после копирования, надо все убить...
поподробней ПЛЗ
вообще то /usr/local/sbin/post-boot тоже должен выполняться с результатом эквивалентным с rc.unslung
Я что то тоже начал терять нить... Если в /usr/local/sbin/post-boot у Вас почти пусто (т.е. только rc.unslung), то где производится монтирование внешнего носителя в /opt ? Автоматом он должен монтироваться вроде только в /tmp/harddisk.
Пожалуйста покажите вывод комманды df
там и есть...
[admin@WL-500g root]$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 2880 2880 0 100% /
/dev/discs/disc0/part1 153622084 148716 145669796 0% /tmp/harddisk
/dev/discs/disc0/part1 153622084 148716 145669796 0% /opt
угу, смонтировано вроде как раз то что надо...
тогда я ни хера не понимаю. Две цитаты взаимоисключающие:
там и есть...
в /usr/local/sbin/post-boot ПУСТО!!!
и я про то же
в nano /usr/local/sbin/post-boot
уже давно добавил:
#!/bin/sh
/opt/etc/init.d/rc.unslung
это едиственная там запись...
что Ыще сделать?????
после flashfs save && flashfs commit && flashfs enable && reboot
КРОН в процессах отсутсвует, нах....
после /opt/etc/init.d/rc.unslung (ручками)
появляется...
ОК, стоп, возможно я виноват. У Вас внешний носитель смонтирвован в /opt автоматом? Если да, то забыли про предыдущий пост. У меня ситуевина была немного другая.
Начнем сначала. Если /opt успешно смонтирован, то в виде программы-минимум мы действительно желаем от post-boot только запуск rc.unslung
Вернемся немного взад. /usr/local/sbin/post-boot выполняемый вручную запускается успешно? Т.е. из перезагруженного состояния в результате должен быть запущен cron
поторюсь
reboot
[admin@WL-500g root]$ top
Mem: 16340K used, 13776K free, 0K shrd, 2084K buff, 6708K cached
Load average: 0.14, 0.04, 0.01 (State: S=sleeping R=running, W=waiting)
PID USER STATUS RSS PPID %CPU %MEM COMMAND
155 admin R 436 145 2.8 1.4 top
113 admin S 416 112 1.9 1.3 pptp
142 admin S 1136 1 0.0 3.7 smbd
140 admin S 1104 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
145 admin S 556 60 0.0 1.8 sh
74 admin S 532 1 0.0 1.7 nas
110 admin S 492 1 0.0 1.6 watchdog
151 admin S 492 1 0.0 1.6 upnp
112 admin S 460 107 0.0 1.5 sh
76 nobody S 436 1 0.0 1.4 dnsmasq
123 admin S 428 1 0.0 1.4 pptp
138 admin S 412 1 0.0 1.3 stupid-ftpd
70 admin S 400 1 0.0 1.3 syslogd
65 admin S 376 1 0.0 1.2 httpd
71 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]$ /opt/etc/init.d/rc.unslung
[admin@WL-500g root]$ top
Mem: 16636K used, 13480K free, 0K shrd, 2128K buff, 6800K cached
Load average: 0.08, 0.04, 0.01 (State: S=sleeping R=running, W=waiting)
PID USER STATUS RSS PPID %CPU %MEM COMMAND
162 admin R 436 145 2.8 1.4 top
113 admin S 416 112 0.9 1.3 pptp
142 admin S 1136 1 0.0 3.7 smbd
140 admin S 1104 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
145 admin S 556 60 0.0 1.8 sh
74 admin S 532 1 0.0 1.7 nas
110 admin S 492 1 0.0 1.6 watchdog
151 admin S 492 1 0.0 1.6 upnp
112 admin S 460 107 0.0 1.5 sh
76 nobody S 436 1 0.0 1.4 dnsmasq
123 admin S 428 1 0.0 1.4 pptp
138 admin S 412 1 0.0 1.3 stupid-ftpd
70 admin S 400 1 0.0 1.3 syslogd
65 admin S 376 1 0.0 1.2 httpd
71 admin S 368 1 0.0 1.2 klogd
161 admin S 360 1 0.0 1.1 cron
105 admin S 356 1 0.0 1.1 igmpproxy
94 admin S 344 1 0.0 1.1 rcamdmain
то что rc.unslung выполним я вроде уже тоже давно понял. Однако, все таки post-boot сам по себе точно выполняется?
Вообще, по моему пора взять тайм-аут до завтра. :)
ок, давай подумаем до завтра...
ЗЫ
но после ребута КРОНА нет :mad:
Однако, все таки post-boot сам по себе точно выполняется?
а фиг его знает? как проверить??
ну так это же обычный шеловский скрипт. Написать в коммандной строке /usr/local/sbin/post-boot и нажать энтер...
после запуска в ручную /usr/local/sbin/post-boot
в процесссах появляется cron
после ребута, надо запускать по новой...
перегрузился я тут и:
[admin@WL-500g root]$ /usr/local/sbin/post-boot
/opt/etc/init.d/S10cron: kill: 7: (162) - No such process
[admin@WL-500g root]$ /opt/etc/init.d/rc.unslung
/opt/etc/init.d/S10cron: kill: 7: (173) - No such process
[admin@WL-500g root]$ /opt/etc/init.d/S10cron
/opt/etc/init.d/S10cron: kill: 7: (182) - No such process
а права у меня правильные на файлах?:
-rwxr-xr-x 1 admin root 150 Apr 14 15:55 cron.5mins
-rwxr--r-- 1 admin root 150 Apr 14 15:55 cron.daily
-rwx------ 1 admin root 490 Apr 15 12:55 crontab
вроде должно быть так: chmod 755 /opt/etc/cron.daily
-rwxr-xr-x 1 admin root 150 Apr 14 15:55 cron.daily
припопытке запустить /opt/etc/cron.5mins
-sh: /opt/etc/cron.5mins: not found
шаманство какое-то....
отъехал на пару часов, вернулся:
top
159 admin S 356 1 0.0 1.1 cron
сам появился....:eek:
после ребута - отсутствует...
HELP...
предлагаю начать медленно сначала, а то танцы с бубнами КАКИЕ-то...
ЗЫ
не работает!!!:(
лажа какая-то уже сам с собой разговариваю
[admin@WL-500g cron.d]$ /opt/etc/cron.d/backup
-sh: /opt/etc/cron.d/backup: not found
------
ау! есть живые???
я тоже отъезжал :)
я тоже уже достаточно запутался в ситуации.
Первое. Права.
-rwxr-xr-x 1 admin root 150 Apr 14 15:55 cron.5mins
первый бит должен быть пустой, далее следуют 3 триады rwx Буква означает включено, дефис выключено rwx означает чтение/запись/выполнение. Первая триада --- права хозяина т.е. в данном случае admin , вторая триада --- права членов группы (в данном случае root), третья триада --- права всех остальных.
Таким образом, если все операции проводятся под одним и тем же юзером (admin), то достаточно отслеживать только первую триаду.
Логин делается под именем admin?
Второе, исполняемый скрипт должен иметь заголовок, указывающий на коммандный интерпретатор, который будет выполнять. Если это шел-скрипт, то заголовок должен быть #! /bin/sh Причем, этот заголовок должен иметь в конце только LF, но не CR/LF. Иначе при попытке выполнения будет выдана ошибка. Этой проблемы вроде у Вас не наблюдается.
Третье,
159 admin S 356 1 0.0 1.1 cron
сам появился...
сам появиться он не мог. Значит он был запущен. На моей системе после перезагрузки запускается довольно много процессов из /opt/etc/init.d Так что полный список задач в памяти имеется через 1-2 минуты после запуска. Другого я предполжить не могу, т.к. само ничего не делается.
Четвертое, есть такая штука как системный лог. Его можно анализировать на предмет каких-либо ошибок имеющих отношение к обсуждаемым делам. Просмотр: more /tmp/syslog.log
Пятое, рекомендую для исключения случайностей проверять наличие запущенного cron следующей коммандой: ps | grep cron | grep -v grep
Шестое, поскольку есть сомнения запускается ли /usr/local/sbin/post-boot при перезагрузке, то можно в него добавить строчку, скажем echo "post-boot запущен "`date` >> /tmp/tmp.log причем я бы эту строку положил после заголовка, но перед запуском rc.unslung
и так, по порядку:
\opt\etc\crontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin:/opt/etc
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.d
0 0 * * 0 admin run-parts /opt/etc/cron.weekly
0 0 1 * * admin run-parts /opt/etc/cron.monthly
\opt\etc\cron.5mins\backup
#! /bin/sh
date >> /tmp/harddisk/ftp_pub/crontest.txt
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`
rm /tmp/harddisk/ftp_pub/xz/*
/usr/local/sbin/post-boot
#!/bin/sh
echo "post-boot запущен "`date` >> /tmp/tmp.log
echo "post-boot запущен "`date` >> /opt/etc/tmp.log
/opt/etc/init.d/rc.unslung
-----------------------------------------------
после ребута:
ps | grep cron | grep -v grep
пусто
/tmp/tmp.log
post-boot запущен Thu Jan 1 03:00:07 MSK 1970
/opt/etc/tmp.log
отсутствует
-----------------------------------------------
[admin@WL-500g /tmp]$ more /tmp/syslog.log
Jan 1 03:00:02 syslogd started: BusyBox v1.1.3
Jan 1 03:00:02 kernel: klogd started: BusyBox v1.1.3 (2007.01.01-14:37+0000)
Jan 1 03:00:02 kernel: cpu probe
Jan 1 03:00:02 kernel: prom init
Jan 1 03:00:02 kernel: cpu report
Jan 1 03:00:02 kernel: CPU revision is: 00029006
Jan 1 03:00:02 kernel: Primary instruction cache 16kb, linesize 16 bytes (2 ways)
Jan 1 03:00:02 kernel: Primary data cache 16kb, linesize 16 bytes (2 ways)
Jan 1 03:00:02 kernel: Linux version 2.4.20 (root@omnibook) (gcc version 3.2.3 with Broadcom modifications) #75 Fri Apr 6 00:12:23 MSD 2007
Jan 1 03:00:02 kernel: Setting the PFC value as 0x15
Jan 1 03:00:02 kernel: Determined physical RAM map:
Jan 1 03:00:02 kernel: memory: 02000000 @ 00000000 (usable)
Jan 1 03:00:02 kernel: On node 0 totalpages: 8192
Jan 1 03:00:02 kernel: zone(0): 8192 pages.
Jan 1 03:00:02 kernel: zone(1): 0 pages.
Jan 1 03:00:02 kernel: zone(2): 0 pages.
Jan 1 03:00:02 kernel: Kernel command line: root=/dev/mtdblock2 noinitrd init=/linuxrc console=ttyS0,115200
Jan 1 03:00:02 kernel: CPU: BCM4704 rev 9 at 264 MHz
Jan 1 03:00:02 kernel: Calibrating delay loop... 263.78 BogoMIPS
-----------------------------------------------
что будем делать далее???
[admin@WL-500g cron.d]$ /opt/etc/cron.d/backup
-sh: /opt/etc/cron.d/backup: not found
эта ошибка возникает скорее всего из-за неправильного символа конца строки в сигнатуре файла (первая строка) (см. предыдущий пост). Рекомендую открыть файл в редакторе (vi или nano) перейти в конец первой строки нажать enter пару раз и сохранить результат. В принципе есть утилита dos2unix но я ее что-то у себя не наблюдаю.
more /tmp/syslog.log --- то что показано это только первая страница лога. Их там много. То что может интересовать нас должно быть ближе к концу. Листать пробелом и энтером.
post-boot у нас запускается успешно. Почему не запускается cron --- хз
В принципе можно продолжить идти по цепочке добавляя echo ... последовательно во все файлы.
Последовательность запуска такая post-boot - rc.unslung - S10cron
А зачем стартовать rc.unslung? Я из post-boot запускаю конкретно крон и самбу, неужели всем нужно всё, что с S?
исходно в /opt/etc/init.d пусто. По мере установки приложений туда добавляются их скрипты автозапуска при загрузке системы. Так что ничего лишнего там быть не должно, только то, что Вы сами поставили. Это стандартный путь. Чтобы подизейблить какой-нибудь загрузчик в init.d достаточно сменить первую заглавную S на s и все.
В принципе, работать будет и простой запуск из post-boot.
/usr/local/sbin/post-boot
#!/bin/sh
echo "post-boot запущен "`date` >> /tmp/tmp.log
echo "post-boot запущен "`date` >> /opt/etc/tmp.log
/opt/etc/init.d/rc.unslung
имее 2- строки записи...
в /tmp/tmp.log пишет (это на роутере получается?),
а в
/opt/etc/tmp.log НЕТ... (это на харде)
/opt/etc/init.d/rc.unslung в ручную запускается!!!
Тогда кажись я понял. При загрузке винт не успел смонтироваться, а команда на выполнение еще недоступного rc.unslung уже дана.
Значит вернемся к длинному варианту post-boot, который я предлагал выше. Минимальный набор должен выглядеть вроде вот так.
#! /bin/sh
# 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
fi
#Wait for /opt to mount
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
# Run all active services - active means those whose name starts with S
/opt/etc/init.d/rc.unslung
А вобще, насчет того каким должен быть post-boot наверное надо бы почитать в теме про настройку wl500g с нуля. Да и начинать, наверное, надо было с этого.
P.S. /tmp сидит в ОЗУ, в /opt смонтирован винчестер
P.S. /tmp сидит в ОЗУ, в /opt смонтирован винчестер
дык я специально две записи в лог сделал... (намекал по всякому :) )
ща попробую...
а теперь чтоб на диск (из ВИНДЫ) попасть, САМБУ чтоль настраивать?
хотел пережить без нее...
еще можно через ftp (я так понимаю ftp сервер там стоять будет)
теперь нано не запускается, ничего не отредактировать,
через ШАРЕ и ФТП не попасть...:eek:
opt/opt/ect/ - стало...
ftp - под вопросом, но с родным роутерным работало...
подохреваю, что проблема в этом:
[admin@WL-500g root]$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 2880 2880 0 100% /
/dev/discs/disc0/part1 153622084 148720 145669792 0% /opt
а было автоматом:
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 2880 2880 0 100% /
/dev/discs/disc0/part1 153622084 148716 145669796 0% /tmp/harddisk
/dev/discs/disc0/part1 153622084 148716 145669796 0% /opt
ну если дело в отсутствии /tmp/harddisk , то почему бы не смонтировать его вручную (или в post-boot):
mount /dev/discs/disc0/part1 /tmp/harddisk
для stupid-ftpd этот маунт пойнт по моему нужен
то почему бы не смонтировать его вручную
монтирую в ручную, но доступ не появляется... млин...
[admin@WL-500g root]$ mount /dev/discs/disc0/part1 /tmp/harddisk [admin@WL-500g root]$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 2880 2880 0 100% /
/dev/discs/disc0/part1 153622084 148720 145669792 0% /opt
/dev/discs/disc0/part1 153622084 148720 145669792 0% /tmp/harddisk
единственное отличе от того, что было ранее :
/dev/root 2880 2880 0 100% /
/dev/discs/disc0/part1 153622084 148716 145669796 0% /tmp/harddisk
/dev/discs/disc0/part1 153622084 148716 145669796 0% /opt
/tmp/harddisk
и
/opt
перепутаны местами, но думаю дело не в этом... :confused:
а если в post-boot попробовать так:
#! /bin/sh
sleep 5s
# Run all active services - active means those whose name starts with S
/opt/etc/init.d/rc.unslung
чтобы это работало ftp через web-интерфейс должен быть включен. Может прокатит?
в вебФайсе Enable FTP Server? ДА
post-boot как теперь отредактировать?
нано не работает (перестал)
ну vi то должен работать
а как насчет /opt/bin/nano ?
убил rm /usr/local/sbin/post-boot
flashfs save && flashfs commit && flashfs enable && reboot
теперь все стало как раньше
nano /usr/local/sbin/post-boot
вставил туда
#! /bin/sh
sleep 5s
# Run all active services - active means those whose name starts with S
/opt/etc/init.d/rc.unslung
chmod +x /usr/local/sbin/post-boot
flashfs save && flashfs commit && flashfs enable && reboot
КРОНА нет...
запускаю вручную /opt/etc/init.d/rc.unslung
КРОН есть
поставил 15 сек., все нормально КРОН появляется...
можно двигаться дальше, к его успешной работе.
принимаю советы
Jan 1 03:00:23 /opt/sbin/cron[150]: (CRON) STARTUP (V5.0)
Jan 1 03:00:23 /opt/sbin/cron[150]: (*system*) BAD FILE MODE (/opt/etc/crontab)
Jan 1 03:00:23 /opt/sbin/cron[150]: (*system*) BAD FILE MODE (/opt/etc/cron.d/backup)
у crontab
какие права должны быть?
какие должны быть --- не знаю. У меня 600
не знаю. У меня 600
-rwx------ 1 admin root crontab
или
-rw-------
?
вообщем крон не работает :(
Батенька, уж извините ежели чего не так, но могу дать совет на очень многие случаи жизни. Вверху окна есть кнопка поиск по конференции. Еще выше у меня есть кнопка поиска в гугле. Вы же не первый, у кого такие пробемы возникают. Я конечно могу и дальше продолжать искать ответы для Вас, но может Вы и сами приложите немного усилий?
прикладываю, ищу - не выходит каменный цветочек :confused:
в логе есть записи:
Apr 17 02:00:01 /opt/sbin/cron[246]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 17 02:05:01 /opt/sbin/cron[250]: (admin) CMD (run-parts /opt/etc/cron.5mins)
толко действий невижу...
Запись означает, что cron замечательно работает.
Далее надо проверять лежит ли backup в /opt/etc/cron.5mins и запускается ли он путем run-parts /opt/etc/cron.5mins
Apr 17 19:45:01 /opt/sbin/cron[177]: (admin) CMD (run-parts /opt/etc/cron.5mins)
только ничего не происходит:(
[admin@WL-500g cron.hourly]$ /opt/etc/cron.5mins/backup
/bin/sh: Can't open
на грани бреда.
---------------------------------------------
из backup
date >> /tmp/crontest.txt
date >> /tmp/harddisk/ftp_pub/crontest.txt
запись не происходит
в crontab
SHELL=
PATH=
за что эти строчки отвечают?
имеет ли смысл сюда */5 * * * * admin run-parts /opt/etc/cron.5mins
дописать /file_name
по логике должно выполнятся ВСЕ, что там лежит
в crontab
SHELL=
PATH=
за что эти строчки отвечают?
полагаю, про это должно быть написано в
man 5 crontab
имеет ли смысл сюда */5 * * * * admin run-parts /opt/etc/cron.5mins
дописать /file_name
можно попробовать записать просто
*/5 * * * * admin /путь/файл
некоторые утверждают, что это работает.
*/5 * * * * admin /путь/файл
некоторые утверждают, что это работает.
прбывал, раницы нет
allguimd
18-04-2007, 09:44
Попробуй:
1: создать файл типа
#!/bin/sh
/bin/touch /tmp/cron_test
Положи его в /opt/etc/cron.5mins, если соответствующий файл появится, значит cron таки точно работает и проблема только в скрипте бэкапа, и тогда:
2: прописать в скрипте бэкапа пути:
#!/bin/sh
/bin/mkdir `/bin/date -u +%d_%m_%Y`
/bin/cp /tmp/harddisk/ftp_pub/xz/* /tmp/harddisk/ftp_pub/backup/`/bin/date -u +%d_%m_%Y`
Если же файл /tmp/cron_test не появился, значит дело в файле crontab - скорее всего там лишний символ досовского перевода строки.
/tmp/cron_test
непоявляется...
поставил аж по два перноса
в логе живет:
Apr 18 19:15:01 /opt/sbin/cron[188]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 18 19:18:45 syslog: Warn: MRT_DEL_MFC; Errno(2): No such file or directory
Apr 18 19:20:01 /opt/sbin/cron[191]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 18 19:24:54 kernel: vlan1: add 01:00:5e:7f:ff:fa mcast address to master interface
Apr 18 19:25:01 /opt/sbin/cron[194]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 18 19:30:01 /opt/sbin/cron[197]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 18 19:31:15 kernel: vlan1: del 01:00:5e:7f:ff:fa mcast address from master interface
Apr 18 19:35:01 /opt/sbin/cron[200]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 18 19:37:22 kernel: vlan1: add 01:00:5e:7f:ff:fa mcast address to master interface
Apr 18 19:40:01 /opt/sbin/cron[203]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 18 19:45:01 /opt/sbin/cron[206]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 18 19:50:01 /opt/sbin/cron[209]: (admin) CMD (run-parts /opt/etc/cron.5mins)
Apr 18 19:54:10 kernel: vlan1: del 01:00:5e:7f:ff:fa mcast address from master interface
Apr 18 19:55:01 /opt/sbin/cron[212]: (admin) CMD (run-parts /opt/etc/cron.5mins
к сожалению содержимое лога не имеет отношения к интересующей проблеме. Можно только уверенно утверждать, что крон работает.
к сожалению содержимое лога не имеет отношения к интересующей проблеме. Можно только уверенно утверждать, что крон работает.
крон ДА
скрипт НЕТ:(
Если вернуться к ранее высказаной гипотезе, насчет неправильных символов конца строки (это достаточно коварная тема, и то, что я писал выше, насчет простого ввода символа конца строки в редакторе на роутере, не факт, что работает). dos2unix имеется в busybox, который устанавливается вручную из optware (busybox-base + busybox-links). Можно попробовать прогнать через нее crontab и, вообще, все на что падает подозрение.
Если вернуться к ранее высказаной гипотезе, насчет неправильных символов конца строки (это достаточно коварная тема, и то, что я писал выше, насчет простого ввода символа конца строки в редакторе на роутере, не факт, что работает). dos2unix имеется в busybox, который устанавливается вручную из optware (busybox-base + busybox-links). Можно попробовать прогнать через нее crontab и, вообще, все на что падает подозрение.
dos2unix перекодирует Русские символы из dos-кодировки в iso-8859-5
Убрать ненавистные символы можно так
cat filename | tr -d "\r" > filename.new; mv -f filename.new filename
KRandall
20-04-2007, 10:53
Вот еще варианты (http://wl500g.info/showpost.php?p=52803&postcount=4), как избавиться от символа CR
dos2unix перекодирует Русские символы из dos-кодировки в iso-8859-5
не только, EOL он тоже правит :)
Я думаю все здесь сталкивались с такой проблемой - что-нибуть не то сделал (неправильная команда, глюк, файловая система повреждена), и приходиться всё сначала устанавливать.
Чтобы этого не произошло - делаем полный Backup!
1) Настойки веб-морды
можно сделать бэкап nvram
cat /dev/mtd/3 > /opt/mynvram.bin
и забрать этот бэкап по ftp, WinSCP (www.winscp.net есть даже плагин для Far Manager) или SAMBA.
если захочется восстановить
flash /opt/mynvram.bin /dev/mtd/3(опасно, так как мало ли есть баг именно в этой прошивке и он запортит флэш)
содержимое этого бэкапа такое же, как при сохранении через веб-интерфейс в текстовом виде System Setup-> Setting Management->HERE
2) FlashFS
http://192.168.1.1/
System Setup -> Flashfs Management
3) Хард (или флешка)
Вот про это я и хочу спросить! Как его делать? (желательно сжатие в архив)???
Lupo_Alberto
14-02-2008, 18:55
3)
В консоли роутера
cd /opt # Директория, которую собираемся архивировать
tar -cjf /path/to/backup_dir/opt_backup.tar.bz2 . # Путь и имя создаваемого архива, точка в конце команды обязательна!
Лучше конечно, отключить диск от роутера и подключить к компьютеру, будет гораздо быстрее.
P. S. Как сделать это под windows не знаю :( , у меня Linux :)
А востанавливать то как?:D я так понимаю, разархивирование???
Команду не дате ли?;)
Lupo_Alberto
14-02-2008, 19:12
Перейти в каталог с архивом
cd ARCHIVE_DIR
Команда для разархивирования
tar -xf opt_backup.tar.bz2 -C /opt
P.S. Команду для архивирования лучше давать так:
tar -cjpf ......
angel_il
14-02-2008, 20:51
архивировать /opt на мой взгляд глупо, максимум что надо архивировать из опта это etc. остальное проще переустановить . чтобы узнать что именно переустанавливать надо сохранить список установленного
ipkg list_installed
можно автоматизировать этот процесс с помощью скрипта.
HOWTO: установка rsnapshot - утилита резервного копирования на базе rsync - AsusForum.NET -- WL500g (http://wl500g.info/showthread.php?t=11239&highlight=rsnapshot)
Lupo_Alberto
15-02-2008, 07:54
архивировать /opt на мой взгляд глупо, максимум что надо архивировать из опта это etc. остальное проще переустановить . чтобы узнать что именно переустанавливать надо сохранить список установленного
ipkg list_installed
можно автоматизировать этот процесс с помощью скрипта.
/opt указан просто для примера, что архивировать каждый решает сам :)
В жизни каждого владельца роутера Асус серии wl500 наступает момент, когда все начинает работать так, как надо. И чем дольше пришлось танцевать с бубном до этого, тем слаще этот миг. Естественно, его (миг) хочется продлить, для чего зело мудрые в линуксе владельцы пишут хитрые скрипты автоматической установки на случай краха системы, а владельцы не зело мудрые (к коим я и отношусь) думают о бэкапе.
В этой связи прошу специалистов по архитектуре нашего роутера рассказать, где и в каком виде хранятся все настройки.
Важное замечание:
Про пункты Settings Managnment и Flashfs Managment я знаю. Но это ведь далеко не все. Есть еще системная флэшка, в случае отказа которой все идет прахом, есть некий пока непонятный для меня nvram (кстати, что это такое?).
Для себя я решил проблему бэкапа так:
- на ББ сохранены настройки
- там же сохранен флэш
- парагон диск бэкап (он умеет работать с ext3) сделал мне образ флэшки (без компрессии и ужимания пустых секторов)
Вот теперь сижу и думаю, достаточно ли соломки постелено? А ронять систему, чтобы накатить бэкап и понять, что чего-то не хватает, не хочется :)
В общем, прошу гуру высказываться...
nvram - non-volatile ram. часть флэшки, отведенная для хранения настроек )
Мне кажется, столько соломки для маленького девайса я еще не наблюдал ))) Надо только посмотреть, что именно сохраняет Flashfs Managment ) в смысле - все ли. хотя если он не тащит nvram, то есть Settings Managnment.
После перепрошивки и восстановления Flashfs и Settings у меня все настройки полностью восстановились.А бэкап флехи страхует установленные вами программы,скрипты и закаченные файлы.Так что не волнуйтесь.
Zein, по-моему, постелено достаточно :D
Только момент, когда все начинает работать так, как надо в жизни владельца роутера Асус серии wl500 не наступает никогда.
Ибо настоящий владелец роутера Асус постоянно что-то добавляет и усовершенствует.
Ибо это закон диалектити.
Ибо движение - есть жизнь :)
Ибо настоящий владелец роутера Асус постоянно что-то добавляет и усовершенствует.
Ибо это закон диалектити.
Ибо движение - есть жизнь :)
Согласен.
Только у меня ступенчато происходит: прокачал рутер, потом надо прокачивать голову на предмет знания линуха для перехода на другой уровень :)
Всем спасибо за одобрение моей соломки :):):)
Vacheslav
23-01-2009, 19:23
В связи с переездом с одной флешки на другую возникла идея - сделать бэкап со старой и восстановить его на новой, тогда не пропадут ночи, потраченные на установку :)
Был написан скрипт mar.sh:
#!/bin/sh
tar -cvzf /opt/share/myarchive.tar.gz / -X /opt/share/mar.exclude
И к нему написан файл исключений. Файл исключений нужен для того, что бы не копировать в бэкап кучу ерунды на самбе и фтп. К тому же, случайно не начать копировать файл бэкапа в себя... Вот оно mar.exclude:
/opt/share/*
/tmp/mnt/disc0_1/opt/share/*
Естественно, можно было бы путь указывать через переменную, но... лениво стало :)
Собственно, выкладываю творение в надежде, что кто-нибудь подправит, ибо есть один косячок. Скрипт отрабатывает, а в конце пишет ошибку. Хотя файл архива создается. И он не битый.
P.S. где-то на форуме кто-то просил подобный скрипт, но что-то как-то не нашлось где и кто...
P.P.S. Забавно, что для мастер-цели скрипт не пригодился - переезд на другую флешку отменился :)
А не проще ли забекапить флешку на компе с помощью, например, акрониса и восстановить на другую флешку?
Vacheslav
25-01-2009, 09:41
Можно конечно, но:
1) Акронис платная программка.
2) Все что нужно для бэкапа есть во фришных пакетах.
Зачем пиратить, когда можно наваять скрипт?
tar в конце выдает ошибку типа:
tar: Error exit delayed from previous errors
когда в процессе архивирования встретилась некритичная ошибка. Например, отсутствует файл/путь, указанный в mar.exclude или проблема с правами. Причем, в момент нахождения ошибки также она выводится. В общем, чтобы разобраться надо проскролить или прогрепить вывод tar на предмет ошибок в процессе.
Vacheslav
26-01-2009, 18:29
Поправил файл исключений:
/opt/share/*
/tmp/mnt/disc0_1/opt/share/*
/proc/*
Ошибки такие стали:
[root@MY sbin]$ ./arch_all.sh
Removing leading `/' from member names
Removing leading `/' from hard link targets
/dev/log: socket ignored
/tmp/var/run/pptp/255.255.255.255\:192.168.192.168: socket ignored
[root@MY sbin]$
/proc выкинул потому что: 1) очень много ошибок тар на нем выкидывал и 2) не очень понимаю что в нем такого, что требует архивирования. Прав?
Что интересно, если архивировать с /proc, то примерно 90 мегов получается. Без - чуть более 70.
вообще, Вам следовало бы разобраться что куда смонтировано. Архивировать / --- бесполезно, ибо / есть по жизни только для чтения. Если желаемый раздел смонтирован в /opt --- то его и надо сохранять.
Vacheslav
26-01-2009, 20:15
Не все так просто - без оглядки опт архивировать не очень умно - это же флешка с самбой и фтп... Для этого и сделан файл исключений...
Но Ваша идея о том, что корень только для чтения верна - его и правда не стоит бэкапить. Спасибо :)
vlebedev
27-01-2009, 12:13
а не проще средствами рутера с одной флешки содержимое opt скопировать на другую и выключив рутер -- переставить?
я переезжал так с флешки на винт, счас думаю вернуть обратно на флешку /opt таким же образом.
ну разумеется я про /opt без монтированной остальной части флешки
fundorin
15-05-2009, 00:38
напишите пожалуйста инструкцию, как сделать бэкап информации на роутере.
прошивка последня от Олега. подключен внешний диск с тремя разделами (500M swap, 1024M /opt, остальное под файлы). хотелось бы иметь возможность бэкапить все настройки и программы роутера либо на последний раздел подключенного диска, либо на компьютер, на случай, если вдруг произойдёт какой-то сбой. спасибо.
тема поднималась многократно. Ищите.
сори, но я тоже не нашел :(
если у кого на виду - киньте плиз.
1. В веб морде сохранить конфиг и flashfs - надеюсь найдете.
2. Обычным Никсовым методом (например dd слить в архив образ раздела /opt
Все.
Восстановление:
1. Сбросить в дефолт.
2. Восстановить раздел /opt из архива.
3. Залить обратно настройки.
3а. Возможно потребуется сделать на роутере flashfs enabled со стандартным сохранением и ребутом.
1. В веб морде сохранить конфиг и flashfs - надеюсь найдете.
2. Обычным Никсовым методом (например dd слить в архив образ раздела /opt
Все.
Восстановление:
1. Сбросить в дефолт.
2. Восстановить раздел /opt из архива.
3. Залить обратно настройки.
3а. Возможно потребуется сделать на роутере flashfs enabled со стандартным сохранением и ребутом.
спасибо за ответ.
но я грешным делом пробовал несколько дней назад на 10а прошивку влезть, все посохранял ессесно (настройки и флешфс). прошился. глядь - а половину нету. осталось то, что на флешке было и всё (/opt как раз. да и тот перестал автоматом монтировацца) . заливание обратно из бекапа не помогло.
я ж потому и спрашивать стал.
slagoris
27-05-2009, 09:45
Приветствую!
Что есть: роутер ASUS WL-500gP v2, USB-флешка Kingston на 8 ГБ, на роутере достаточными трудами (учитывая малые знания линукса) настроен rtorrent (без вэбморды), все работает стабильно. Бывает что что-то слетает на флешке (может данные повреждаются как-то в результате частых перебоев с электричеством), и приходится снова все ручками восстанавливать, что очень трудоемко.
Что нужно: нужна возможность сделать образ флешки с рабочей конфигурацией, чтобы если что-то случилось просто накатил образ и все заработало.
Я уже пробовал сделать образ программой flashnul – образ сохранился на комп (winXP), но когда все сломалось я залил образ обратно, но видимо как-то не так залилось. Может кто поможет в этом вопросе? софт и дейтсвия....
Здравствуйте,
Я хочу сделать backup моего wl500gp, с тем чтобы можно восстановить текущее состояние (как Нортон Ghost за PC).
Flash легко скопироват в веб-интерфейс . Проблема в том, что меня также есть раздел жесткого диска, где я поставил ipkg пакетов (смонтированы в / ОПТ)
Пожалуйста, дайте совет, который является самым простым способом full backup/restore.
Здравствуйте,
Я хочу сделать backup моего wl500gp, с тем чтобы можно восстановить текущее состояние (как Нортон Ghost за PC).
Flash легко скопироват в веб-интерфейс . Проблема в том, что меня также есть раздел жесткого диска, где я поставил ipkg пакетов (смонтированы в / ОПТ)
Пожалуйста, дайте совет, который является самым простым способом full backup/restore.
Если "сделать backup моего wl500gp" -- то достаточно сохранить настройки и Flashfs в веб-интерфейсе.
На счет /OPT, -- лично я просто архивировал на роутере таром, а потом разархивировал в нужном месте.
Автоматическое резервное копирование блога на WORDPRESS средствами плагина
WordPress Database Backup, ftp клиента lftp и роутера Asus WL-500gP.
Как все мы прекрасно знаем, постоянное резервирование значимых данных просто необходимо, и чем важнее данные, тем важнее backup этих данных.
В этой процедуре есть один существенный недостаток, мешающий регулярному бэкапу - это лень. Избавится от этого нам поможет автоматизация
процесса резервного копирования. В этой статье я расскажу как создать резервную копию файлов и базы данных блога на движке WordPress.
В статье подразумевается, что доступ к файлам блога имеется только по ftp, но с возможностью подключения через TLS/SSL.
Итак, приступим к поставленной задаче.
Автоматическое резервное копирование бызы данных блога на WordPress. Плагин WordPress Database Backup.
Скачка и установка плагина стандартна и подробно останавливаться на ней я не буду. Перейдем непосредственно к настройке плагина.
В панели «инструменты» админки блога выбираем «резервное копирование», попадаем в меню настройки WordPress Database Backup.
Здесь можно отметить дополнительные таблицы которые вы хотите включить в основную резервную копию, а в поле снизу
«Расписание резервного копирования» выбрать время копирования и почтовый ящик, куда эти копии будут отсылаться.
Для этих целей лучше специально создать ящик на gmail.com.
http://bruteforcer.ru/wp-content/uploads/2010/02/WordPress-Database-Backup.jpg
Автоматическое резервное копирование файлов блога WordPress с помощью фтп клиента lftp и роутера Asus WL-500gP.
Для реализации задуманного понадобится альтернативная прошивка для нашего роутера с возможностью доступа
к консоли и установки пакетов программного обеспечения. За прошивкой можно обратиться на форум http://wl500g.info.
На этом ресурсе есть несколько мануалов по прошивке устройства и установки дополнительного ПО.
Чтобы продолжить реализацию нашей затеи у вас должны быть установлены: менеджер пакетов ipkg и cron.
Вообще регулярный бэкап требует ответственного подхода к распределению дискового пространства под это дело.
Как минимум следует выделить отдельный раздел под резервные копии, а лучше отдельный физический диск.
Ни в коем случае не пытайтесь сохранять резервные копии на корневом раздели, потому что, если вдруг
резервирование выйдет из под вашего контроля, вы рискуете полностью заполнить корневой раздел
и «вывести систему из строя».
В своем примере, я воспользуюсь отдельной флешкой, смонтированной под резервные копии.
Подключаемся к консоли роутера и командуем:
# halt
После отработки команды индикатор питания роутера погаснет и вилку сетевого шнура можно извлечь из розетки.
(ничего не мешает вам просто выдернуть вилку, но я стараюсь использовать «щадящий» режим для файловой системы)
Устанавливаем в свободный USB разъем Flash накопитель, либо, если вы используете многофункциональный картридер
- flash карту в свободный разъем считывателя карт. Включаем роутер и подключаемся к консоли.
Смотрим файл устройства нашей флешки и каталог куда она была смонтирована.
# df -h
Путь к файлу устройства у вас должен быть примерно следующий:
/dev/discs/disc0/part3
А точка монтирования примерно такая:
/tmp/mnt/disc0_3
Следующие команды отмонтируют устройство и создадут на нем новую файловую систему ext3:
# umount /tmp/mnt/disc0_3
# mke2fs -j /dev/discs/disc0/part3
Следующим шагом я создам каталог для точки монтирования флешки и пропишу в файл
fstab параметры автоматического монтирования устройства при загрузке роутера.
# mkdir /opt/backup
# nano /etc/fstab
В файл fstab добавляем следующую строку:
/dev/discs/disc0/part3 /opt/backup ext3 rw,noatime 1 1
Сохраняем результат(Жмем ctrl+o, Enter, ctrl+x). Так как файл fstab находится в основной
флеш-памяти устройства, выполняем команды, чтобы закрепить результат.
# flashfs save && flashfs commit && flashfs enable && reboot
После перезагрузки и подключения к консоли следует проверить работоспособность
наших предыдущих действий, выполнив команду:
# df -h
Если точка монтирования нашей флешки /opt/backup, значит все хорошо
и мы переходим к следующему пункту настройки.
Установка lftp и настройка резервного копирования блога.
До установки lftp (если вы хотите соединяться с фтп сервером по протоколу SSL)
вы должны убедиться, что у вас установлен пакет OpenSSL.
# ipkg list_insalled
Если установлен, все хорошо, если нет устанавливаем.
# ipkg update
# ipkg install openssl
Теперь, непосредственно сам клиент фтп:
# ipkg install lftp
Для удобства создадим файл инструкций для клиента:
# touch /opt/backup/ftp_connect
# nano /opt/backup/ftp_connect
set ftp:ssl-allow yes # принудительное использование SSL(очень желательно использовать
set ftp:ssl-auth TLS # если есть поддержка на сервере)
set ftp:ssl-force true #
open login.server.ru # подключение к серверу
user login password #
mirror domains . # директория которую копируем(domains) и куда копируем(.)
exit
В файле пароли к фтп лежат в открытом доступе, что уже не хорошо, поэтому выставляем на него права 400.
# chmod 400 /opt/backup/ftp_connect
А теперь, собственно сам скрипт:
#!/bin/sh
backupdir=/opt/backup
dir=`date +%Y-%m-%d` \
echo "[--------------------------------[`date +%Y-%m-%d`]--------------------------------]" >> /opt/backup/backup.log
echo "[----------][`date +%Y-%m-%d`] Run the backup script..." >> /opt/backup/backup.log
mkdir $backupdir/$dir 2> /dev/null
echo "[----------] Go to a directory with the backup..." >> /opt/backup/backup.log
cd $backupdir/$dir 2> /dev/null
if [[ $? -gt 0 ]];then echo "[----------] Aborted. Not possible Go to a directory ." >> /opt/backup/backup.log
exit 1
fi
echo "[----------] Successfully passed the directory with the backup..." >> /opt/backup/backup.log
echo "[----------] Downloading files..." >> /opt/backup/backup.log
lftp -f $backupdir/ftp_connect > /dev/null 2>&1
if [[ $? -gt 0 ]];then echo "[----------] Aborted. Not possible Downloading files ." >> /opt/backup/backup.log
exit 1
fi
echo "[----------] Successfully Downloading files..." >> /opt/backup/backup.log
echo "[----------] Archiving the downloaded files..." >> /opt/backup/backup.log
tar -zcf $backupdir/`date +%u`.tar.gz $backupdir/$dir 2> /dev/null
if [[ $? -gt 0 ]];then
echo "[----------] Aborted. Not possible to create an archive ." >> /opt/backup/backup.log
exit 1
fi
echo "[----------] Successfully Archiving the downloaded files..." >> /opt/backup/backup.log
echo "[----------] Delete the temporary folder..." >> /opt/backup/backup.log
cd $backupdir
rm -rf $backupdir/$dir 2> /dev/null
if [[ $? -gt 0 ]];then
echo "[----------] Aborted. Not possible Delete the temporary folder ." >> /opt/backup/backup.log
exit 1
fi
echo "[+++++++++-][`date +%Y-%m-%d`] Free HDD space: `df -h $backupdir | tail -n1 | awk '{print $4}'`" >> /opt/backup/backup.log
echo "[++++++++++][`date +%Y-%m-%d`] All operations completed successfully!" >> /opt/backup/backup.log
exit 0
Сохраняем скрипт и делаем его исполняемым:
# chmod +x /opt/backup/script.sh
Теперь скрипт нужно закинуть в задания cron, в зависимости от частоты обновления блога. Например так:
# cp /opt/backup/script.sh /opt/etc/cron.daily/script.sh
Если вы настраивали роутер по мануалам из вышеприведенного форума, где предлагается для удобства
создать папки для скриптов запускаемых cron и настроить сам cron для обработки этих папок, то делаете
так как я написал выше. Если вы этого не сделали, то просто добавьте задание в crontab файл.
По поводу crontab – убедитесь, сто в строке, где прописаны пути для PATH, указан путь /opt/bin.
Если исполнение скрипта назначить на каждый день, то ротация архивов с резервной копией
будет осуществляется за счет того, что ежедневно будут создаваться архивы с номером
текущего дня недели, а каждую следующую неделю архивы будут перезаписываться.
На этом, все! Все предложения по улучшению поставленной задачи приветствуются. Удачи.
http://bruteforcer.ru/index.php/2010/02/01/avtomaticheskoe-rezervnoe-kopirovanie-bloga-na-wordpress-sredstvami-plagina-wordpress-database-backup-ftp-klienta-lftp-i-routera-asus-wl-500gp/ :D
Здравствуйте. Не подскажите как можно забэкапить все настройки и софт на моем роутере ASUS WL-500Gp? Это мне надо для того, чтобы я смог попробывать поставить с помощью скрипта для чайников более новый софт.
если не портить разметку диска, то наиболее просто так:
1) на сайте роутера - сохранить flashfs + config settings (все базовые настройки + внутренняя флешка)
2) резевная копия раздела /opt
по идее этого достаточно (я так откатывал полностью)
может еще чего надо - хз, может есть проще методы...
Поиск для кого придумали?
http://wl500g.info/showthread.php?t=16856
Assembled
09-02-2010, 21:22
Мужики а подскажите как будет выглядеть команда tar например для такого случая:
Следует сделать бэкап папки /opt, чтобы этот бэкап был назван по имени, и сохранён на другом диске.
как это сделать непойму :(
как то что ль так?:
tar cpvf filename.tar /tmp/mnt/disc0_3 /opt
вот тока не получается :(
============================
вот так получилось:
cd /tmp/mnt/disc0_3
tar cpvf optarch.tar /opt
тогда всё получается, бэкап папки /opt, под именем optarch.tar, сохраняется на диске /tmp/mnt/disc0_3.
А кто подскажет как сделать тоже самое находясь например в корне файловой системы??
tar -C /tmp/mnt/disc0_3 ...
Assembled
10-02-2010, 01:20
tar -C /tmp/mnt/disc0_3 ...
таким образом не получилось, может сделал чего не так, но получилось вот таким образом:
tar cpvf /tmp/mnt/disc0_3/filename.tar /opt/etc
Это у нас получился бэкап папки etc, под именем filename.tar размещёный по адресу /tmp/mnt/disc0_3/
а распаковать его потом так:
tar xpvf /tmp/mnt/disc0_3/filename.tar -C /
как я понял, каталогом для разорхивирования надо указывать корень, так как в tar сохраниласть структура папок, открыл filename.tar, а внём папка opt, ну а в папке opt соответственно папка etc уже со всем содержимым.
==============
Пробовал ещё это дело дожать gzip. Но в книжечке СЕТЕВЫЕ СРЕДСТВА Linux , Родерик В. Смит написал, что бэкап лучше не архивить в gzip и т.д. Т.к. при повреждении весь архив становится нечитаемым, лучше делать бэкап просто в tar.
P.S. кому инфа пригодится:
команды:
с --create = создаёт архив tar
p --preserve-premission = сохраняет информацию о пользователях и правах пользователей
x --extract = извлекает файлы из tar
v --verbose = Выводит информацию об обрабатываемых файлах
z --gzip или --ungzip = задаёт обработку архива программой gzip или ungzip
f --file = использует в качестве архива указаный файл, команда f всегда ставится последней, (например xvzf) а после неё прописывается имя создаваемого tar файла.
С --directory = Перед обработкой данных делает указаный каталог текущим (данная С пишется в верхнем регистре, заглавная буква короче)
dennypsp
06-02-2011, 16:11
Ребят кто знает как скопировать всю флешку сразу со всеми папками на ней? Знаю как копировать по папкам, но может есть метод копирования сразу всей флешки. По форуму ничего про копирование всей флешки ничего не нашел (
Ребят кто знает как скопировать всю флешку сразу со всеми папками на ней? Знаю как копировать по папкам, но может есть метод копирования сразу всей флешки. По форуму ничего про копирование всей флешки ничего не нашел (
Плохо искали.
Здесь читайте, и тут (http://wl500g.info/showpost.php?p=159920&postcount=14).
revenant
08-02-2011, 15:49
Пожалуйста помогите восстановить файл name.tar.bz2
Файл был удален путем частичного форматирования (вовремя выключил)
В результате с помощью программы photorec удалось восстановить файл
Но файл получился name.bz2 при переименовании не распаковывает.
Пробывал разные программы, но пока ничего не выходит.
FilimoniC
08-02-2011, 16:55
Пожалуйста помогите восстановить файл name.tar.bz2
...
Но файл получился name.bz2
в Windows обычно архив это "Сжатый набор файлов"
в unix программа TAR отвечает за создания из нескольких файлов одного, а bzip2 его сжимает
Так что если у вас .tar.bz2 - то это аналог windows'овского zip-а, а если .bz2 - то это просто файл, ужатый архиватором.
Вам надо сначала его "разжать", а потом "растарить". то есть первый шаг - получение из .tar.bz2 файла .tar, а не .bz2
Попробуйте отсюда посмотреть
https://www.linuxquestions.org/questions/linux-general-1/help-need-to-recover-corrupt-bzip2-files-289800/
И еще вы должны понимать, что архивация - это уменьшение количества данных при сохранении возможности воссоздания первоначального набора. Таким образом, убираются все дублирующиеся на "случай чего" куски, прогрессии сокращаются, и т.д.. Наверное, видели фотки JPEG. Один битый байтик и вся фотка на смарку. Но в JPEG можно заменить битый пиксель любым битом, а в двоичных файлах - нет.
http://www.hketech.com/JPEG-recovery/o02.png
ConstAntz
08-02-2011, 19:16
Пожалуйста помогите восстановить файл name.tar.bz2
Файл был удален путем частичного форматирования (вовремя выключил)
В результате с помощью программы photorec удалось восстановить файл
Но файл получился name.bz2 при переименовании не распаковывает.
Пробывал разные программы, но пока ничего не выходит.
попробуй свой файл кинуть в блокнот.
если самые первые символы похожи на "BZh91AY" - переименуй в tar.bz2;
если куча пробелов и иногда проглядываются пути - есть вероятность что это tar архив;
а вообще - если архив цел, winrar должен справится.
Есть задача бекапировать информацию по сети, сохраняя ее "флешке" воткнутой в роутер.
Исходя из задачи подскажите как лучше все организовать?
заранее спасибо:)
ps/ роутер asus 500 gp2, прошивка 1.9.2.7-d-r2381, флеш диск 8 gb
Ребят, подскажите .. обрисую ситуацию
роутер, подключена флешка 4g 3 раздела (своп, хоум и /) перенес весь функционал с роутера на flash drive роутер грузится с usb флешки + доставил еще достаточно всякого рода полезнях на нее asterisk, и др. , и вот к примеру в один "прекрасный" момент флеха дохнет ...:mad: чем бекапнуть флеху (так чтоб с разделами с тем что я ставил ) держать резервную на готове так сказать....Спасибо!