Задать вопрос
@SquareWheel
DevOops

Не работает баш скрипт, ошибок не выдает, в чем может быть проблема?

Есть скрипт.
#!/bin/bash
rootFolder=`pwd`
i=0
a=50
while [ "$i" -ge "$a" ]; 
do
$i+1
rsync -avz '-e shh' user@server$i.com:/folder1/folder2/  becupfolder$i/folder1/folder2
for $somefolder in `ls -d */ | grep -v '^_'`
do

ssh user@server$i.com
echo $somefolder
find $rootFolder/$somefolder/-name "*.waw" -type f -mtime -93 | rsync -avz '-e ssh' $rootFolder/$somefolder/spool/monitor/ user@127.0.0.1:$rootFolder/$somefolder/spool/monitor/{}\;
find $rootFolder/$somefolder/-name "*.mp3" -type f -mtime -93 | rsync -avz '-e ssh -p 22n' $rootFolder/$somefolder/spool/monitor/ user@127.0.0.1:$rootFolder/$somefolder/spool/monitor/ {}\;
exit
done
done

Он, в теории, должен обходить некоторое количество серверов, и rsync'сом забирать содержимое нужных каталогов, за исключением одного вложенного(чей размер, чуть-чуть превышает объем рейда для бэкапов), после чего конектится к оным серверам по ssh, искать там файлы .waw и .mp3, которые старше определенного времени и отдавать их куда-же, куда и остальные(весьма извращенным способом, но других мне в голову не пришло). Однако при запуске он не выводит ничего вообще, ни выводов команд, ни ошибок.
Возможно, есть какие-то синтаксические/логические ошибки в скрипте, подскажите пожалуйста?
Возможно это важно, все живет на дебиане 8.2.
Все ип, названия папок, логины, и т.д., были изменены перед написанием этого сообщения. На всякий случай.
  • Вопрос задан
  • 510 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
@azazelpw
Linux SA
Примерно это вы хотели написать.
i=0
a=50
while [[ "$i" -le "$a" ]]; 
do
let i=$i+1
done

А вообще эта конструкция делается через for, баш дофига чего умеет :)
for ((i=0; i < 50; i++))
do
done
Ответ написан
Комментировать
Leksnsk
@Leksnsk
Если ошибок не выдает, то посмотри где затыкается, запустив так:

bash -x ./script.sh
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@alegzz
у вас же скрипт не разу не выполнится, потому что $i всегда меньше $a. то есть условие "пока $i больше $a" не выполняется совсем. ну и дальше: $i+1 - это вообще что и на каком языке?
в общем, говнокод знатный получился
Ответ написан
Комментировать
@nirvimel
Для отладки поставьте echo [номер строки] после каждой строки (потом самые назойливые в циклах уберете). К вызовам rsync и ssh добавьте -v первым параметром. Далее, нужно рассматривать вывод скрипта и из этого делать свои выводы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы