Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

razstec

[Resolvido] shell script

Recommended Posts

viva malta, tenho um script em ficheiro bat para fazer algumas coisas na minha bd mas como tambem estou a testar em linux gostaria de saber se alguem me ajuda a converter este ficheiro bat em shell linux.

 


@echo off
cls
:start
echo.
ECHO Manutencao de BD 
ECHO - - - - - - - - - -
ECHO Backup
ECHO 1. Backup Diario
ECHO 2. Backup Semanal
ECHO 3. Backup Mensal
ECHO - - - - - - - - - -
ECHO Restauro
ECHO 4. Restauro Diario
ECHO 5. Restauro Semanal
ECHO 6. Restauro Mensal
ECHO - - - - - - - - - -
ECHO 7. Sair
echo.
echo.

set /p x=Escolha uma opcao:_

IF '%x%'== '7' exit

set /p t=Tem a certeza?(s/n)

IF '%t%' == 's' GOTO Item_%x% 
GOTO Start



:Item_1
cd/
cd Program Files/PostgreSQL/8.4/bin
pg_dump.exe --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file "C:\Users\Ricardo\Desktop\Backup\db\diario\dumpDB_openclinica_diario.backup" openclinica


cd/
cd Users\Ricardo\Desktop\Backup\DB\diario
copy *.* e:

echo.
ECHO Backup Diario Efectuado com sucesso
echo.
GOTO Start

:Item_2
cd/
cd Program Files/PostgreSQL/8.4/bin
pg_dump.exe --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file "C:\Users\Ricardo\Desktop\Backup\db\semanal\dumpDB_openclinica_semanal.backup" openclinica

cd/
cd Users\Ricardo\Desktop\Backup\DB\semanal
copy *.* e:

echo.
ECHO Backup Semanal Efectuado com sucesso
echo.
GOTO Start

:Item_3
cd/
cd Program Files/PostgreSQL/8.4/bin
pg_dump.exe --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file "C:\Users\Ricardo\Desktop\Backup\db\mensal\dumpDB_openclinica_mensal.backup" openclinica

cd/
cd Users\Ricardo\Desktop\Backup\DB\mensal
copy *.* e:

echo.
ECHO Backup Mensal Efectuado com sucesso
echo.
GOTO Start

:Item_4
cd/
cd Program Files/PostgreSQL/8.4/bin
pg_restore.exe --host localhost --port 5432 --username postgres --dbname openclinica --list "C:\Users\Ricardo\Desktop\Backup\DB\diario\dumpDB_openclinica_diario.backup"

echo.
ECHO Restauro Diario Efectuado com sucesso
echo.
GOTO Start

:Item_5
cd/
cd Program Files/PostgreSQL/8.4/bin
pg_restore.exe --host localhost --port 5432 --username postgres --dbname openclinica --list "C:\Users\Ricardo\Desktop\Backup\DB\semanal\dumpDB_openclinica_semanal.backup"

echo.
ECHO Restauro Semanal Efectuado com sucesso
echo.
GOTO Start

:Item_6
cd/
cd Program Files/PostgreSQL/8.4/bin
pg_restore.exe --host localhost --port 5432 --username postgres --dbname openclinica --list "C:\Users\Ricardo\Desktop\Backup\DB\mensal\dumpDB_openclinica_mensal.backup"

echo.
ECHO Restauro Mensal Efectuado com sucesso
echo.
GOTO Start

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Penso que seja qualquer coisa assim:

 

#!/bin/bash

selection=
until [ "$selection" = "0" ]; do
   echo ""
   echo Manutencao de BD 
   echo - - - - - - - - - -
   echo Backup
   echo 1. Backup Diario
   echo 2. Backup Semanal
   echo 3. Backup Mensal
   echo - - - - - - - - - -
   echo Restauro
   echo 4. Restauro Diario
   echo 5. Restauro Semanal
   echo 6. Restauro Mensal
   echo - - - - - - - - - -
   echo 7. Sair
   echo ""
   echo -n "Escolha uma opcao: "
   read selection
   echo ""
   case $selection in
       1 ) xpto ;;
       2 ) xpto ;;
3 ) xpto ;;
       4 ) xpto ;;
5 ) xpto ;;
       6 ) xpto ;;
       7 ) exit ;;
       * ) echo "Escolha uma das opções apresentadas no menu"
   esac
done

 

Agora so me falta descobrir como inserir a opção de tem a certeza(s/n)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Viva, consegui por a funcionar assim:

 

now=$(date +"%m_%d_%Y")
#!/bin/bash

selection=
until [ "$selection" = "0" ]; do
   echo ""
   echo Manutencao de BD 
   echo - - - - - - - - - -
   echo Backup
   echo 1. Backup Diario
   echo 2. Backup Semanal
   echo 3. Backup Mensal
   echo - - - - - - - - - -
   echo Restauro
   echo 4. Restauro Diario
   echo 5. Restauro Semanal
   echo 6. Restauro Mensal
   echo - - - - - - - - - -
   echo 7. Sair
   echo ""
   echo -n "Escolha uma opcao: "
   read selection
   echo ""

echo -n "Tem a certeza?(s/n) "
read text

if [ $text="s" ] | [ $text="S" ]; then

   case $selection in
       1 ) /opt/PostgreSQL/8.4/bin/pg_dump --host localhost --port 5432 --username postgres --format tar --blobs --verbose --file "/home/oc/Desktop/Backup_OC/Backup Diario/Backup_oc_diario_$now" openclinica;; 

2 ) /opt/PostgreSQL/8.4/bin/pg_dump --host localhost --port 5432 --username postgres --format tar --blobs --verbose --file "/home/oc/Desktop/Backup_OC/Backup Semanal/Backup_oc_semanal_$now" openclinica;;

3 ) /opt/PostgreSQL/8.4/bin/pg_dump --host localhost --port 5432 --username postgres --format tar --blobs --verbose --file "/home/oc/Desktop/Backup_OC/Backup Mensal/Backup_oc_mensal_$now" openclinica;;

4 ) /opt/PostgreSQL/8.4/bin/pg_dump --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file "/home/oc/Desktop/Backup_OC/Backup_oc_diario_$now" openclinica;;

5 ) /opt/PostgreSQL/8.4/bin/pg_dump --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file "/home/oc/Desktop/Backup_OC/Backup_oc_semanal_$now" openclinica;;

       6 ) /opt/PostgreSQL/8.4/bin/pg_dump --host localhost --port 5432 --username postgres --format custom --blobs --verbose --file "/home/oc/Desktop/Backup_OC/Backup_oc_mensal_$now" openclinica;;

       7 ) exit ;;
       * ) echo "Escolha uma das opções apresentadas no menu"
   esac

else
exit

fi

done

 

O problema agora e fazer o restore funcionar visto que o nome do ficheiro esta sempre a mudar devido a data em que foi criada.

Alguma sujestao?

 

Ja agora porque é que quando dou n ou outro valor no texto que nao seja s ele nao sai?

 

Obrigado

 

resolvi assim

now=$(date +"%a_%b_%Y-%H:%M:%S")

Agora é so a opção de restore e do s e n, alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.