LINUX.ORG.RU
ФорумAdmin

Пишу свой первый скрипт, нужна помощь


0

1

Вообщем то уже написал такое

#!/bin/bash
echo 'script start at '$(date)'' >> /var/log/backups.log
cd /home/rls/
tar pczf backup_$(date +%d_%m_%Y).tar.gz csvn/
mv backup_svn_$(date +%d_%m_%Y).gz /root/
echo 'script done at '$(date)'' >> /var/log/backups.log
echo '-------------------------------------------------'  >> /var/log/backups.log
все круто, архив создается но вот не перемещается в /root/, пробовал и так
tar pczf backup_$(date +%d_%m_%Y).tar.gz csvn/ && mv backup_svn_$(date +%d_%m_%Y).gz /root/

но тоже безрезультатно. Подскажите в чем ошибка?

не грусти, укажи сразу полное имя файла тару, он создаст, где надо.

и у теюя опчатка.
tar pczf backup_$(date +%d_%m_%Y).tar.gz
mv backup_svn_$(date +%d_%m_%Y).gz

замени на tar pczf /root/backup_$(date +%d_%m_%Y).tar.gz

aol ★★★★★ ()

Традиционный ответ: для отладки скрипта .... включай отладку скрипта

#!/bin/bash

set -x
router ★★★★★ ()

Во-первых, смотрим на имена файлов backup_ и backup_svn_ и думаем.

Во-вторых, результат $(date +%d_%m_%Y) может измениться за время работы tar , загоняй имя файла в отдельную переменную и подставляй из неё.

geekless ★★ ()
Ответ на: комментарий от aol

Блин, точно, как же это я так провтыкал, а по поводу имени архива согласен, по человечески нужно делать через переменную

temp001 ()

Во-первых, создай переменную, в неё запиши текущую дату, а потом эту переменную и подставляй в команды.

Во-вторых, у тебя неправильно задано имя файла:

mv backup_svn_$(date +%d_%m_%Y).gz /root/

а нужно

mv backup_svn_$(date +%d_%m_%Y).tar.gz /root/

post-factum ★★★★★ ()
Ответ на: комментарий от post-factum

Спасибо всем, что то я совсем затупил, все эта гребаная жара...

temp001 ()

echo 'script done at '$(date)" >> /var/log/backups.log echo '-------------------------------------------------' >> /var/log/backups.log

printf(или echo -e) 'script done at '$(date)'\n-------------------------------------------------' >> /var/log/backups.log

Deleted ()
Ответ на: комментарий от Deleted

echo 'script done at '$(date)" >> /var/log/backups.log
echo '-------------------------------------------------' >> /var/log/backups.log

printf(или echo -e) 'script done at '$(date)'\n-------------------------------------------------' >> /var/log/backups.log

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.