Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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?
Penso que seja qualquer coisa assim:
#!/bin/bash
selection=
until [ "$selection" = "0" ]; do
done
Agora so me falta descobrir como inserir a opção de tem a certeza(s/n)