У меня это работает так. Каждое N-количество времени запускает скрипт, который архивирует tar`ом содержимое htdocs из /var/www, делает sql дампы, раскладывает это по соответствующим директориям, потом раскладывает это всё по директориям с датой. Кому лень это писать самому - забирайте.
  1. #!/bin/bash
  2.  
  3. dir=$1
  4. date=`date \ \%d-%m-%y`
  5. d_dir=$2/$date
  6. sql_pass=$3
  7.  
  8. mkdir -p $d_dir/files
  9. mkdir -p $d_dir/sql
  10.  
  11. echo "${date}: Начало процесса полного бекапа.
  12. ---------------------------------------------------
  13. " >> /var/log/backup.log
  14.  
  15. for i in $(ls -1 $dir);
  16. do
  17.         file=$i.tar
  18.         tar -cvf /tmp/$file $dir/$i/htdocs/* &&
  19.         mv /tmp/$file $d_dir/files/$file &&
  20.         echo "Архив с сайтом ${i} записан" >> /var/log/backup.log
  21. done
  22.  
  23. dbs=$(mysql -uroot -p$sql_pass -e "show databases;" | grep [:alnum:])
  24.  
  25. for i in $dbs;
  26. do
  27.         if [ "$i" == "Database" ] || [ "$i" == "information_schema" ] || [ "$i" == "mysql" ]
  28.         then
  29.                 continue
  30.         fi
  31.  
  32.         file=$i.sql
  33.         mysqldump -uroot -p$sql_pass $i > /tmp/$file &&
  34.         mv /tmp/$file $d_dir/sql/$file &&
  35.         echo "SQL-файл ${i} записан" >> /var/log/backup.log
  36. done
  37.  
  38. echo "--------------------------------
  39. backup завершён" >> /var/log/backup.log
Запускать так: ./backup.sh директория_с_сайтами куда_копируем_бекапы пароль_от_mysql Пароль от Mysql естественно должен быть для текущего пользователя (от чьего имени запускается скрипт). В cron можно добавить нечто вроде этого:
0 6 * * * backup.sh /var/www /mnt/net_disk secret_password
Почти забыл. В итоге мы будем иметь вот что:
  1. site sb0y # ls -R /mnt/net/smb_bkp/
  2. /mnt/net/smb_bkp/:
  3. 06-05-10  07-05-10
  4.  
  5. /mnt/net/smb_bkp/06-05-10:
  6. files  sql
  7.  
  8. /mnt/net/smb_bkp/06-05-10/files:
  9. for_1c.zip     localhost.zip  new_kardos.ru.zip  zif1W5dm
  10. kardos.ru.zip  magazine.zip   workground.zip
  11.  
  12. /mnt/net/smb_bkp/06-05-10/sql:
  13. kardos_ru_new.sql  kardos_ru.sql  magazineBeta.sql  magazine.sql
  14.  
  15. /mnt/net/smb_bkp/07-05-10:
  16. files  sql
  17.  
  18. /mnt/net/smb_bkp/07-05-10/files:
  19. for_1c.zip     localhost.zip  new_kardos.ru.zip
  20. kardos.ru.zip  magazine.zip   workground.zip
  21.  
  22. /mnt/net/smb_bkp/07-05-10/sql:
  23. kardos_ru_new.sql  kardos_ru.sql  magazineBeta.sql  magazine.sql


nEcdyGgx

nEcdyGgx 13 Augustа в 18:33 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1 OR 2+518-518-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1 OR 3+518-518-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1 OR 3*2>(0+5+518-518) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1 OR 2+548-548-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1 OR 3+548-548-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1 OR 3*2>(0+5+548-548)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1' OR 2+571-571-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1' OR 3+571-571-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1' OR 3*2>(0+5+571-571) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1' OR 2+775-775-1=0+0+0+1 or 'L8UL9ypO'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1' OR 3+775-775-1=0+0+0+1 or 'L8UL9ypO'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1' OR 3*2>(0+5+775-775) or 'L8UL9ypO'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1" OR 2+23-23-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1" OR 3+23-23-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1" OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

-1" OR 3*2>(0+5+23-23) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

if(now()=sysdate(),sleep(15),0)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:35 #

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

-1; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

-1); waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

1 waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

Mf4QBDlw'; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

-5 OR 387=(SELECT 387 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

-5) OR 104=(SELECT 104 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

-1)) OR 782=(SELECT 782 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

vjkr8DGr' OR 498=(SELECT 498 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

bQ0f7ZkC') OR 848=(SELECT 848 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

uaDdT2S5')) OR 202=(SELECT 202 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

1'"

nEcdyGgx

nEcdyGgx 13 Augustа в 18:36 #

@@A72lx

nEcdyGgx

nEcdyGgx 13 Augustа в 18:47 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1 OR 2+138-138-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1 OR 3+138-138-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1 OR 3*2>(0+5+138-138) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1 OR 2+50-50-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1 OR 3+50-50-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1 OR 3*2>(0+5+50-50)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1' OR 2+504-504-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1' OR 3+504-504-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1' OR 3*2>(0+5+504-504) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:48 #

-1' OR 2+583-583-1=0+0+0+1 or 'SbIUj24K'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1' OR 3+583-583-1=0+0+0+1 or 'SbIUj24K'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1' OR 3*2>(0+5+583-583) or 'SbIUj24K'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1" OR 2+66-66-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1" OR 3+66-66-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1" OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1" OR 3*2>(0+5+66-66) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

if(now()=sysdate(),sleep(15),0)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1); waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

1 waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

6jnJNhDU'; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-5 OR 257=(SELECT 257 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-5) OR 304=(SELECT 304 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

-1)) OR 588=(SELECT 588 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

fdM1i5Es' OR 98=(SELECT 98 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

uK2Omam7') OR 41=(SELECT 41 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

dNTe2Zoc')) OR 845=(SELECT 845 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

1'"

nEcdyGgx

nEcdyGgx 13 Augustа в 18:49 #

@@3RTsR


Войдите или зарегистрируйтесь, чтобы написать комментарий.