📦 synology.forum архів спільноти · 2005–2022
ai.synology.forum →

CMD

Aanton0070621.11.2012#1

Здравствуйте)

 

Есть bat ник который запускает архивацию бэкапов SQL server'a, и он довольно таки сильно загружает мой не очень мощный сервер, вот...

и поэтому хотелось бы эту функцию отдать NAS'у ..

 

1. Может ли DSM запускать .bat файл (командная строка windows)? сама?

2. Возможно ли как то сделать расписание запуска этого файла?

3. Если нет, то будет ли такая вожможность в качестве расширения?

 

 

 

 

Aandres09521.11.2012#2

1. нет

2. нет

3. нет

 

поддержки коммандной строки DOS не будет в DSM, т.к. это UNIX-подобная система

Aalexejnic21.11.2012#3

Все легко решается средствами НАСа

1.Пишется скрипт #!/bin/sh

2. Ставится в cron

3. Пункт как бы отпадает сам собой.

Сервер грузит не batник, а приложения прописанные в нем.

 

Aanton0070621.11.2012#4
Все легко решается средствами НАСа

1.Пишется скрипт #!/bin/sh

2. Ставится в cron

3. Пункт как бы отпадает сам собой.

Сервер грузит не batник, а приложения прописанные в нем.

 

спасибо за ответ) да. я неверно выразился) грузит конечно архиватор, который запускается батником))

Со 2м пунктом про cron мне более менее понятно. а вот что есть "скрипт #!/bin/sh" ??? можно по подробнее..

Aalexejnic21.11.2012#5

Вот простейший пример архивации папки MyDocument на диске D: виндовой машины в локалке в папку MyBackup на NAS ресурсами NAS .

Предварительно подключаем через проводник DSM диск D: в папку smbwin, созданную зараннее на NAS. Создаём текстовый файл можно даже без расширения допустим с названием arc следующего содержания.

#!/bin/sh
date=`date "+%Y-%m-%d"`;
tar -cvf /volume1/MyBackup/$date-backup.tar /volume1/smbwin/MyDocument;

Кидаем его в папку tmp на NAS. Даём ему права на запуск, запускаем через putty команду

/volume1/tmp/arc

Через некоторое время увидим заархивированое содержимое папки MyDocument у себя на NAS в папке MyBackup в файле СегодняшняяДата-backup.tar

Поставив это задание в cron допустим каждый день мы будем иметь архив этой папки.

Это и есть пример скрипта.Ну а содержимое файла пишем под свои задачи.

Aanton0070626.11.2012#6

alexejnic, Благодарю за помощь! пример почти понятен)) скоро придёт коробочка ds1812+ буду разбираться)

В данном скрипте архивация каким то стандартным архиватором реализована? Есть ли возможность использовать 7zip?

 

P.S. можно полезные ссылки кинуть по написанию подобных скриптов. Я так понимаю сие называется ШЕЛЛ?)

P.S.S. Сорри за нубские вопросы, я виндовый админ.. с линуксом не очень дружу)))

Aalexejnic26.11.2012#7
В данном скрипте архивация каким то стандартным архиватором реализована? Есть ли возможность использовать 7zip?

Да архивация идёт встроенным в коробку архиватором tar. 7z также есть, есть zip, так что выбрать есть из чего.

По написанию скриптов shell для linux в сети море информации, даже не знаю какие ссылки дать.

Aanton0070627.11.2012#8
Да архивация идёт встроенным в коробку архиватором tar. 7z также есть, есть zip, так что выбрать есть из чего.

По написанию скриптов shell для linux в сети море информации, даже не знаю какие ссылки дать.

 

Я уже погуглил) Информации действительно много.. синтаксис довольно прост и понятен.

Думаю с поставленной задачей справлюсь)

Aalexejnic27.11.2012#9

Если батникы для винды писал, это тоже самое с мелкими отличиями.

Aanton0070612.12.2012#10
Если батникы для винды писал, это тоже самое с мелкими отличиями.

 

 

я уже почти написал)) сначала установил на nas - ipkg, p7zip, cron. щас собственно пишу, проверяю как работает, что в лог пишет)

 

вот полезная ссылочка по установке ipkg:

http://forum.synology.com/wiki/

 

а вот существующий батник, может кому понадобится:

@Echo off
setlocal enabledelayedexpansion

Rem Определяем константы
Set WorkDir=\\server\BackUp\
Set BackupDir=\\nas\BackUp\
Set Mask=*.bak
Set LogFile=\\server\BackUp\_cmd\archiver_log.log
Set CompressLevel=5

Rem Записываем текущую дату в лог
Echo %Date%>> %LogFile%
Echo ---------->> %LogFile%

Rem Архивируем все .bak файлы
FOR %%z IN (%WorkDir%%Mask%) do (
  Echo           [!time:~,5!] %%z  начали>> %LogFile%
  Call %WorkDir%_cmd\7z a %%z.7z %%z -mx%CompressLevel% -sdel
  if errorlevel 1 Echo         * [!time:~,5!] %%z  ошибка архивации>> %LogFile%
  Echo           [!time:~,5!] %%z  закончили>> %LogFile%
  Move /Y %%z.7z %BackupDir%
  if errorlevel 1 Echo         * [!time:~,5!] %%z  ошибка перемещения>> %LogFile%
  Echo           ------------------------------------------------------>> %LogFile%
)
:Exit
endlocal

Aanton0070613.12.2012#11

как совладать с выводом даты в лог файл.. он лепит подряд в одну строку:

пробовал так:

 

LogFile=/volume1/bases/logs/arhiver.log
Date=`date +%Y.%m.%d`
Time=`date +%A\ %R`

echo $Date >> $LogFile
echo $Time >> $LogFile

 

в результате он лепит всё

 

2012.12.13Thursday 17:47

 

!!!!!!!! мда.. и это всё при просмотре вЕндовым блокнотом наблюдается... NotePad++ видит как надо=) куда копать?)

Aanton0070617.12.2012#12
echo -e "sample text \r" >> $LogFile

Не знайшли рішення в цьому треді? ШІ знає цей архів і всі даташити — і відповість вашою мовою.Запитати ШІ →