Criando imagens ISO de diretórios

31/05/2009

Este é um pequeno script que gera um arquivo de imagem ISO do diretório corrente. O arquivo de imagem pode ser gravado num CD ou DVD.

Alguém poderia me perguntar: “Por que alguém poderia querer um script desses se é possível gravar um diretório num CD ou DVD diretamente usando ferramentas gráficas?” Eu diria o seguinte:

  • Gosto de ter minhas próprias ferramentas.
  • Uso muito o console (shell) no meu dia-a-dia, acessando vários servidores remotamente via SSH e nestes servidores, não há interface gráfica instalada. Isto me fez virar um assíduo escritor de scripts.
  • Gosto de saber como as coisas funcionam, o passo-a-passo.
  • Gosto de programar.
  • E, sim, eu também gosto de interface gráfica e de suas ferramentas. Só que algumas tarefas eu gosto de fazer manualmente.
  • Por fim, devo ser meio maluco mesmo.

Eis o código:

#!/bin/bash

TARGETDIR="~"
TARGETFILE="bkp.iso"

if [ "$1" == "" ] ; then
  echo -n -e "Target directory (default: $TARGETDIR):"
  read TG
  if [ ! "$TG" = "" ] ; then
          TARGETDIR=$TG
  fi

  echo -n -e "Target filename (default: $TARGETFILE):"
  read TG
  if [ ! "$TG" = "" ] ; then
          TARGETFILE=$TG
  fi
else
  TARGETDIR=$(dirname "$1")
  TARGETFILE=$(basename "$1")
fi

TARGET="$TARGETDIR/$TARGETFILE"

echo "Target: $TARGET"

VOL=$(date +"%Y-%m-%d %H:%M:%S")

mkisofs -f -V "$VOL" -v -J -l -R -o $TARGET .

echo "ISO image of volume $INDEX created in $TARGET"