Задать вопрос

Как объеденить несколько команд в скрипт?

Добрый день, есть файлопомойка на дебиане делаю рехервные копии вот такой командой по ssh
tar zcvf - /mnt/md4/docs | ssh user@192.168.0.XXX "cat > /mnt/BACKUP/docs_`date '+%F_%T'`.tar.gz"

таких команд 5 штук они по сути одинаковые отличаются только директории.
Подскажите как мне эти 5 команж уместить в один скрипт, чтобы запустить и он выполнял их последовательно.
Заранее спасибо за помощь.
  • Вопрос задан
  • 314 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 2
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Обычно я не даю готовых скриптов, предпочитая давать удочку, а не рыбу, но тут я подумал и решил, что я у себя использую эту идею - я тоже бэкаплю нечто примерно подобным образом, поэтому тут у нас будет вот:
#!/bin/sh
dirlist="dir1 dir2 dirN"

for onedir in $dirlist
 do
   # Это собственно бэкап
   tar zcf - /mnt/md4/${onedir} | ssh user@192.168.0.XXX "cat > /mnt/BACKUP/${onedir}_$(date '+%F_%T').tar.gz"
   # А это проверка того, что что-то сбэкапилось
   # Отбрасываем ->, чтобы исключить линки
   line=`ssh user@192.168.0.XXX \
        "cd /mnt/BACKUP/ && ls -la | grep ${onedir}_$(date '+%F_%T').tar.gz | grep -v -e \"->\""`

   # Если в результате пусто - такого файла нет
   if [ ${#line} -eq 0 ]; then
     echo "Backup failed"
    else
       # Берем длину и проверям, что она не нуль
       size=`echo $line | awk '{print $5}'`

       if [ $size -ne 0 ]; then
         echo "Backup Success"
       else
          echo "Backup failed"
       fi
    fi
 done
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
#!/bin/bash

tar zcf - /dir1 | ssh user@192.168.0.XXX "cat > /mnt/BACKUP/dir1_$(date '+%F_%T').tar.gz"
tar zcf - /dir2 | ssh user@192.168.0.XXX "cat > /mnt/BACKUP/dir2_$(date '+%F_%T').tar.gz"
tar zcf - /dir3 | ssh user@192.168.0.XXX "cat > /mnt/BACKUP/dir3_$(date '+%F_%T').tar.gz"


Если все поддиректории в одном месте - можно сделать цикл по списку директорий.
#!/bin/bash

for dir in "dir1" "dir2" "dir3" ; do
    tar zcf - /mnt/md4/${dir} | ssh user@192.168.0.XXX "cat > /mnt/BACKUP/${dir}_$(date '+%F_%T').tar.gz"
done
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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