![]() |
Показаны 28 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- Виртуальный хостинг (http://netadmin.ws/forum/forumdisplay.php?forumid=29)
-- Как сделать чтобы каждый день в Х часов весь контент сайта архивировался в gz ? (http://netadmin.ws/forum/showthread.php?threadid=5065)
Как сделать чтобы каждый день в Х часов весь контент сайта архивировался в gz ?
Как сделать чтобы каждый день в Х часов весь контент сайта архивировался в gz ?
может скрипт какой существует? есть шелл, такая опция есть в cpanel но на сервере её нет а качать по нескольку тысяч файлов в день очень утомительно 

quote:
Как сделать чтобы каждый день в Х часов весь контент сайта архивировался в gz ?
На самом деле все немного проще.
Нужно найти хостинг прова который предоставляет Cron
(кстати, большенство тех, кто разрешает shell просто не знают как отключить этот крон
)
Скрипт пишется за 2-3 минуты
(если надо - могу написать) дальше заходится терминалом на сервак, говориться
crontab -e
и добавляется нужная строчка.
ВСЕ 
Проверить или запущен крон легко:
В терминале говорим
ps -ax | grep crond |grep -v grep
должно выдыть что-то типа
2165 ? S 0:00 crond
да все несложно
quote:
Проверить или запущен крон легко:
В терминале говорим
ps -ax | grep crond |grep -v grep
должно выдыть что-то типа
2165 ? S 0:00 crond
quote:
Первоначальное сообщение от alex007
Да на некоторыц современных хостерах, можно самому установить в восколько крон запускать... так что не обезательно в 0:00
konung77
крон есть, шелл есть, а скрипта нет 
поможете?
Да, помогу. Мне нужен полный путь к твоей хоум директории + список директорий которые надо архивировать.
Путь можно узнать зайдя на сервер и набрав команду
finger твой_юзер_нейм
Directory: /usr/home/hosting/sovietwarezcom Shell: /bin/hosting
архивировать:
вообще весь контент 
а если по дирам то
либо htdocs
либо то что внутри а именно:
/htdocs/admin
/htdocs/alex
/htdocs/archive
/htdocs/attachs
/htdocs/files
/htdocs/gallery
/htdocs/images
/htdocs/mod
/htdocs/tmp
/htdocs/tutych
зарание спасибо 
Давай уточним 
/usr/home/hosting/sovietwarezcom/htdocs - дира которую надо скручивать?
/bin/hosting - это вместо /bin/sh??? Или что это?
quote:
Первоначальное сообщение от konung77
Давай уточним
/usr/home/hosting/sovietwarezcom/htdocs - дира которую надо скручивать?
quote:
/bin/hosting - это вместо /bin/sh??? Или что это?
там так написано было
Можешь зайти туда и запустить команду
finger твой_юзер_нейм?
А результат мне скинуть?
konung77
я уже делал это... 
quote:
sovietwarezcom@mt [~] $ finger sovietwarezcom
Login: ************* Name: FTP for ************
Directory: /usr/home/hosting/sovietwarezcom Shell: /bin/hosting
Last login Thu Apr 17 21:36 (EEST) on ttyp5 from *.**.**.**
No Mail.
No Plan.
Лови:
#!/bin/sh
#
UHOME=/usr/home/hosting/sovietwarezcom/
ADIR=htdocs
PREF=`date +%j`
ANAME=arc.$PREF.tar.gz
BDIR=backup
cd $UHOME
[ ! -d $UHOME/$BDIR ] && mkdir $UHOME/$BDIR/ && chmod 755 $UHOME/$BDIR/ && echo " -- $BDIR directory created"
cd $BDIR
tar czf $ANAME ../$ADIR && echo " -- $ANAME archived successfully at:"&& date || exit 1
exit 0
konung77 добавил 18-04-2003 в 14:29:57:
Немного коментариев
Скрипт писался на коленях со всеми вытекающими...
1. Инсталяция 
копируешь на свой сервер назвав например backup.sh
ставишь права на исполнение
chmod 755 backup.sh
2. Запись в Крон:
говоришь
crontab -e
в открывшейся файл вписываешь такую строчку:
0 15 * * * /usr/home/hosting/sovietwarezcom/backup.sh >> /usr/home/hosting/sovietwarezcom/arc.log 2>&1
где 15 - 15 часов 00 минут (меняй как хочешь)
Сохраняешься
3. После первого исполнения у тебя в хоме появиться дира backup с архивом типа arc.109.tar.gz где цифра в имени означает день от начала года в диапазоне от 001 до 366
(так что не забудь через год их тереть
)
В дире где лежит скрипт появится arc.log с помощью него сможешь контролировать успешность бэкапа
4. Немного о переменных
UHOME - твой хом
ADIR - дира которую надо крутить
ANAME - как будет называться архив
BDIR - дира для бэкапа (если такой нет скрипт сам ее создаст)
ЗЫ: Поскольку я не знаю какой у тебя шел (/bin/hosting - какой-то изврат) то пробуй так как написанно (/bin/sh) если не заработает пробуй другой (/bin/bash ну или твой /bin/hosting)
Вроде все 
Кста, напиши или заканало 
нормально работает, я его немного поменял так он и базу за одно архивирует, было бы еще прикольно сделать чтобы он чистил старые бэкапы которым например более 15 дней, ну и походу закачку на другой фтп можно реализовать.
polo добавил 18-04-2003 в 21:43:31:
Если кому интересно.
#!/bin/sh
#
UHOME=/home/user #корневая директория
ADIR=public_html #директория для бэкапа
PREF=`date +%e-%m-%Y`
ANAME=dumpfiles_$PREF.tar.gz
BDIR=files_dump #сюда сохраняем архивиромые файлы
DBNAME=dbnamehere
DBUSER=dbusernamehere
DBPASS=dbuserpasswordhere
DBBDIR=db_dump #сюда сохраняем архивиромые базы
cd $UHOME
[ ! -d $UHOME/$BDIR ] && mkdir $UHOME/$BDIR/ && chmod 755 $UHOME/$BDIR/ && echo " -- $BDIR directory created"
[ ! -d $UHOME/$DBBDIR ] && mkdir $UHOME/$DBBDIR/ && chmod 755 $UHOME/$DBBDIR/ && echo " -- $DBBDIR directory created"
cd $BDIR
tar czf $ANAME ../$ADIR && echo " -- $ANAME archived successfully at:"&& date || exit 1
mysqldump -u $DBUSER -p$DBPASS $DBNAME | gzip > $UHOME/$DBBDIR/$DBNAME_$PREF.gz && echo " \n $DBNAME archived successfully:" && date || exit 1
exit 0
__________________
Всегда есть решение.
Ок, подумаем над этим в понедельник 
Сегодня уже много пива 
Сорри что не в топик 
konung77
есть пара вопросов 
я так и не понял как сохранять когда крон редактируешь, добавил через крон менеджер в КП
будет ли работать скрипт если у меня нет доступа рута?
попозже напишу сработал ли скрипт 
EDIT: ммм, у меня не пашет
оказалось я не тот логин писал там где finger ща вот написал другой и вот что выдало
quote:
sovietwarezcom@mt [~] $ finger Ssovietwarezcom
Login: ************ Name: SHELL for sovietwarez.com
Directory: /usr/home/hosting/sovietwarezcom Shell: /usr/local/bin/bash
On since Sat Apr 19 15:13 (EEST) on ttyp0 from **.**.***.**
No Mail.
No Plan.
Кстате, я нашел скрипт который делает резервные копию сайта и посылает её на мыло, называется Perl Script Backup System (PSBS) v1.0 (халявный).
AzzKickr
Чтоб сохраниться в кронтабе попробуй нажать эскейп а затем написать
:wq! (две точки обязательно!)
Ð_утовый доступ не нужен поскольку работаешь только со своими файлами.
В твоем случае вместо
/bin/sh
пропиши /usr/local/bin/bash
хотя и с /bin/sh должно работать
/usr/home/hosting/sovietwarezcom/backup.sh: not found
а скрипт там есть? Кинь мне результат такой команды:
ls -la /usr/home/hosting/sovietwarezcom/
Попробуем разобраться 
quote:
drwx--x--x 10 sovietwarezcom hosting 512 Apr 19 15:21 .
drwx--x--x 8 root wheel 512 Apr 11 18:52 ..
-rw------- 1 sovietwarezcom hosting 1637 Apr 19 16:09 .bash_history
drwxr-xr-x 4 sovietwarezcom hosting 512 Apr 9 17:42 .usermin
-rw-r--r-- 1 sovietwarezcom hosting 270 Apr 21 15:45 arc.log
drwxrwxrwx 2 sovietwarezcom hosting 512 Apr 19 15:21 backup
-rwxrwxr-x 1 sovietwarezcom hosting 806 Apr 19 15:20 backup.sh
drwxr-xr-x 2 sovietwarezcom hosting 512 Apr 9 13:03 cgi-bin
drwxr-xr-x 11 sovietwarezcom hosting 1536 Apr 19 14:21 htdocs
drwxr-xr-x 2 sovietwarezcom hosting 512 Apr 19 12:36 htdocs.alex.sovietwarez.com
drwxr-xr-x 9 sovietwarezcom hosting 1024 Apr 15 04:11 htdocs.gallery.sovietwarez.com
drwxr-xr-x 2 root hosting 1024 Apr 21 07:32 log
drwxrwxrwx 2 sovietwarezcom hosting 512 Apr 19 01:43 sql
quote:
#!/usr/local/bin/bash
#
UHOME=/usr/home/hosting/sovietwarezcom/
ADIR=htdocs
PREF=`date +%e-%m-%Y`
ANAME=dumpfiles_$PREF.tar.gz
BDIR=backup #сюда сохраняем архивиромые файлы
DBNAME=dbnamehere
DBUSER=dbusernamehere
DBPASS=dbuserpasswordhere
DBBDIR=db_dump #сюда сохраняем архивиромые базы
cd $UHOME
[ ! -d $UHOME/$BDIR ] && mkdir $UHOME/$BDIR/ && chmod 755 $UHOME/$BDIR/ && echo " -- $BDIR directory created"
[ ! -d $UHOME/$DBBDIR ] && mkdir $UHOME/$DBBDIR/ && chmod 755 $UHOME/$DBBDIR/ && echo " -- $DBBDIR directory created"
cd $BDIR
tar czf $ANAME ../$ADIR && echo " -- $ANAME archived successfully at:"&& date || exit 1
mysqldump -u $DBUSER -p$DBPASS $DBNAME | gzip > $UHOME/$DBBDIR/$DBNAME_$PREF.gz && echo " \n $DBNAME archived successfully:" && date || exit 1
exit 0
Попробуй
chmod 755 backup.sh
и всетаки попробуй вместо /usr/local/bin/bash
/bin/sh
попробуй запустить его с кансоли
./backup.sh - что он говорит?
полтергейст какойто 
quote:
sovietwarezcom@mt [~] $ ls
arc.log htdocs.crap.sovietwarez.com
backup.sh htdocs.gallery.sovietwarez.com
cgi-bin htdocs.up.sovietwarez.com
files_23.04.2003.tgz htdocs.upgrade.sovietwarez.com
htdocs log
htdocs.alex.sovietwarez.com sql
sovietwarezcom@mt [~] $ ./backup.sh
: bad interpreter: No such file or directory
sovietwarezcom@mt [~] $ ./arc.log
-bash: ./arc.log: Permission denied
Бред какой-то ....
Ты права 755 поставил?
/bin/sh пробывал? Попробуй и запусти скрипт вот так:
sh ./backup.sh
попробуй удальть диры sql и backup (скрипт их сам создаст)
поробуй не бекапить sql
попробывал
quote:
sovietwarezcom@mt [~] $ sh ./backup.sh
: not found
: not found
: not found
: not found
: not found
: not found
cd: can't cd to /usr/home/hosting/sovietwarezcom/
: No such file or directoryvietwarezcom/
: No such file or directoryvietwarezcom/
cd: can't cd to backup
: Permission deniedive ../htdocs
tar: child returned status 3
-- archived successfully at:
Thu Apr 24 19:12:05 EEST 2003
/db_dump/.gz: directory nonexistente/hosting/sovietwarezcom/
да просто путь до корневого каталога задан неверно.
__________________
Всегда есть решение.
Немного переделанный + добавленно удаление старых файлов
#!/bin/sh
#
UHOME=/home/user #user's home directory
ADIR=public_html #directory that should be backed up
PREF=`date +%e-%m-%Y`
ANAME=dumpfiles_$PREF.tar.gz
BDIR=files_dump #backup directory
DBNAME=dbnamehere #Mysql DB name
DBUSER=dbusernamehere # Mysql user name
DBPASS=dbuserpasswordhere # Mysql password
DBBDIR=db_dump #backup directory fo Mysql
KEEP=15 #How long the old files should be kept?
#######################
#Backuping directory
#and Mysql DataBase
#######################
cd $UHOME
[ ! -d $UHOME/$BDIR ] && mkdir $UHOME/$BDIR/ && chmod 755 $UHOME/$BDIR/ && echo " -- $BDIR directory created"
[ ! -d $UHOME/$DBBDIR ] && mkdir $UHOME/$DBBDIR/ && chmod 755 $UHOME/$DBBDIR/ && echo " -- $DBBDIR directory created"
tar czf $BDIR/$ANAME $ADIR && echo " -- $ANAME archived successfully at:"&& date || exit 1
mysqldump -u $DBUSER -p$DBPASS $DBNAME | gzip > $UHOME/$DBBDIR/$DBNAME_$PREF.gz && echo " n $DBNAME archived successfully:" && date || exit 1
#######################
#Removing old files
#######################
cd $UHOME/$BDIR/
find . -type f -mtime +${KEEP} -exec rm -f {} ;
#######################
#That's all
#######################
exit 0
Может глюк?
Вот какую ошибку выдает скрипт: tar: 9-05-2003.tar.gz: Cannot stat: No such file or directory
Создается только файл с именем dumpfiles_, почему?
polo добавил 08-05-2003 в 23:52:05:
разобрался: $BDIR/$ANAME и $UHOME/$DBBDIR/$DBNAME_$PREF.gz нужно заключить в кавычки.
polo добавил 09-05-2003 в 00:09:40:
хотя для базы не работает
__________________
Всегда есть решение.
| Формат времени GMT. Текущее время 01:24. | Показаны 28 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.