poniedziałek, 26 maja 2014

Cykliczne kopiowanie pliku

Na początek coś bardzo prostego - krótki skrypcik w bashu kopiujący dany plik co określoną ilość czasu. Akurat potrzebowałem takiego skryptu do stworzenia animacji z monitora korelatora software'owego. Pliki w monitorze są aktualizowane na bieżąco, więc najprościej było mi po prostu kopiować je co ustaloną ilość czasu.

Kod:

#!/bin/bash
# -*- coding: utf-8 -*-
# Rafał Sarniak 26.05.2014
# cyclcop.sh ver. 1.0
# Simple bash script for cyclical copying files.
# Na potrzeby projektu POWIEW, Interferometr Bałtycki.

PLIK="$@"                    # plik do skopiowania
LICZBA=5                     # ilość cykli kopiowania
OPOZNIENIE=2                 # czas opóźnienia między cyklami
KATALOG="kopie"              # katalog do kopiowania
NAZWA="klatka"               # nazwa plików

# Sprawdź czy masz katalog do kopiowania, jeśli nie - utwórz.
if [ -d $KATALOG ]; then     # -d prawda jeśli katalog istnieje
  echo "Copying to existing directory $KATALOG"
else
  mkdir $KATALOG
  echo "Creating catalog $KATALOG"           
fi

# Kopiuj plik co pewną ilość sekund, nadając mu kolejny numer w nazwie.
for (( i=0; i<=$LICZBA; i++ ));
do
  cp $PLIK ./$KATALOG/"$NAZWA"_"$i"
  echo "$PLIK copied to ./$KATALOG/"$NAZWA"_"$i"   Waiting $OPOZNIENIE seconds..."
  sleep $OPOZNIENIE
done

Brak komentarzy:

Prześlij komentarz