Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Общие вопросы
  • Search

Помогите переделать скрипт под VestaCP [Backup в облако ЯД]

Общие вопросы о панели управления Vesta
Post Reply
  • Print view
Advanced search
8 posts • Page 1 of 1
q1LLa
Posts: 34
Joined: Sun Feb 08, 2015 7:47 pm

Помогите переделать скрипт под VestaCP [Backup в облако ЯД]
  • Quote

Post by q1LLa » Sun Feb 08, 2015 8:23 pm

Имеется скрипт, который заливает бэкап на яндекс диск. Как его переделать так, чтобы он заливал в облако бэкапы из папки "/home/backup" и поставить его на CRON ?

Скрипт:

Code: Select all

#!/bin/bash

SERVER_NAME="server1"
TIME=`date +%Y-%b`

FS_FILE=/tmp/$SERVER_NAME-fs.$TIME.tar.gz
MYSQL_FILE=/tmp/$SERVER_NAME-mysql.$TIME.sql.gz

# Archiving filesystem
tar -czf $FS_FILE /etc /root /home

# Archiving databases
mysqldump -u root --password=qwerty --all-databases | gzip > $MYSQL_FILE

# Uploading to the cloud
curl --user USER:PASSWORD -T "{$FS_FILE,$MYSQL_FILE}" https://webdav.yandex.ru/

# Cleanup
unlink $FS_FILE
unlink $MYSQL_FILE
Источник: https://blog.amartynov.ru/archives/linu ... to-webdav/
Top

sol
Posts: 72
Joined: Fri Jan 16, 2015 12:19 pm
Contact:
Contact sol
Website

Re: Помогите переделать скрипт под VestaCP [Backup в облако
  • Quote

Post by sol » Mon Feb 09, 2015 2:21 pm

Code: Select all

#!/bin/bash

FS_FILE=/home/backup/*.tar.gz

# Uploading to the cloud
curl --user USER:PASSWORD -T "{$FS_FILE}" https://webdav.yandex.ru/


Top

q1LLa
Posts: 34
Joined: Sun Feb 08, 2015 7:47 pm

Re: Помогите переделать скрипт под VestaCP [Backup в облако
  • Quote

Post by q1LLa » Mon Feb 09, 2015 4:37 pm

sol wrote:

Code: Select all

#!/bin/bash

FS_FILE=/home/backup/*.tar.gz

# Uploading to the cloud
curl --user USER:PASSWORD -T "{$FS_FILE}" https://webdav.yandex.ru/


Так он будет загружать сразу все архивы в папке бэкап ? А нельзя сделать, чтобы загружал только новые архивы ?
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Помогите переделать скрипт под VestaCP [Backup в облако
  • Quote

Post by skurudo » Mon Feb 09, 2015 8:21 pm

На самом деле решение на полрубля, лабается за недолго.

...скучную часть пропустим, про душевные муки, про выбора тоску.

Нам нужен скрипт, который будет в яндекс лить. Собственно есть человек на гитхабе, который скрипт уже написал - https://github.com/abbat/ydcmd - там же и установка и все пирожки. Работает это через Rest API. Работает достаточно стабильно, достаточно предсказуемо. А потом сделаем sh-скрипт и в крон засунем:

/usr/local/bin/ydcmd put /home/backup/ disk:/Backup --timeout=300 --retries=60

Если усложнить задачу, то можно смонтировать еще и в davfs2 диск (статья в помощь - http://habrahabr.ru/post/142067/). Но это скорее чисто для просмотра и можно также использовать для удаления старых архивов - к примеру мы смонтировали в /mnt/yandex/, например вот так:

Code: Select all

i=10
find /mnt/yandex/Backup -type f -mtime +$i -exec rm -f {} \;
PS: Не стоит копировать с помощь davfs2 - достаточно медленно, но противнее всего, что периодически подвисает при копировании. Даже не думайте монтировать для /home/backup яндекс.диск - это чревато потерей нервных клеток, тормозами и прочими радостями.
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Помогите переделать скрипт под VestaCP [Backup в облако
  • Quote

Post by skurudo » Mon Feb 09, 2015 8:29 pm

q1LLa wrote:Так он будет загружать сразу все архивы в папке бэкап ? А нельзя сделать, чтобы загружал только новые архивы ?
скриптом :)

Нам нужно получить файлы с текущей датой, мы же знаем, что стандартно архивы называются user.текущая-дата.tar

...sh-скрипт:
timestamp=`date “+%Y-%m-%d”`
cp /home/backup/*.`date “+%Y-%m-%d”`.tar /whereweneed

PS: не проверял, но направление рассуждений прослеживается? :)
Top

webnarmin
Posts: 2
Joined: Tue May 24, 2016 9:44 pm

Re: Помогите переделать скрипт под VestaCP [Backup в облако ЯД]
  • Quote

Post by webnarmin » Tue May 24, 2016 9:45 pm

cp /backup/*.$(date +%Y-%m-%d).tar /root/Yandex.Disk
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Помогите переделать скрипт под VestaCP [Backup в облако ЯД]
  • Quote

Post by skurudo » Tue May 24, 2016 9:52 pm

webnarmin wrote:cp /backup/*.$(date +%Y-%m-%d).tar /root/Yandex.Disk
Ну да, как одна из реализаций.
Но не стоит забывать, что еще и смонтировать это дело нужно сначала.

Я все же склонен к использованию API Яндекса при загрузке файлов более гигабайта.
Как-то оно по опыту надежнее получалось.
Top

webnarmin
Posts: 2
Joined: Tue May 24, 2016 9:44 pm

Re: Помогите переделать скрипт под VestaCP [Backup в облако ЯД]
  • Quote

Post by webnarmin » Wed May 25, 2016 7:35 am

Для решения этой задачи

1. установил https://yandex.ru/support/disk/cli-clients.xml
2. поставил в крон на каждые 7 утра синхронизацию /root/sync-yandex-disk

Содержание /root/sync-yandex-disk

Code: Select all

#!/bin/bash

#папка Яндекс Диска на сервере
YA_FOLDER=/root/Yandex.Disk

#количество дней для хранения бэкапа
BACKUP_DAYS=14

CUR_DATE=$(date +%Y-%m-%d)
FOLDER_GREP_PATT='\d{4}-\d{2}-\d{2}'

#запускаем демон в режиме односторонней синхронизации Сервер -> Яндекс Диск
yandex-disk start

#создаем папку на Яндекс Диске
mkdir $YA_FOLDER/$CUR_DATE

# и копируем в нее файлы из /backup
cp /backup/*.$CUR_DATE.tar $YA_FOLDER/$CUR_DATE

#удаляем бэкапы с Яндекс Диска сроком давности больше BACKUP_DAYS дней
diff <(ls $YA_FOLDER | grep -P $FOLDER_GREP_PATT | sort | tail -n$BACKUP_DAYS) <(ls $YA_FOLDER | grep -P $FOLDER_GREP_PATT) | grep '>' | cut -c3- | xargs -i rm -rf $YA_FOLDER/{}

exit
Top


Post Reply
  • Print view

8 posts • Page 1 of 1

Return to “Общие вопросы”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password