Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Как запустить gbak из python?  [new]
druff
Member

Откуда: Где-то на юге России
Сообщений: 140
Собственно вопрос..

Пытаюсь таким способом:
os.system('команда')
но ничего не происходит. Та же самая команда в командной строке выполняется на ура. Вот такие пироги..
14 апр 09, 17:48    [7063250]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить gbak из python?  [new]
Kochmin_Alexandr
Member

Откуда:
Сообщений: 351

druff wrote:

> Собственно вопрос..
>
> Пытаюсь таким способом:
>
> os.system('команда')
>
> но ничего не происходит. Та же самая команда в командной строке
> выполняется на ура. Вот такие пироги..

ну и иди в форум python. Мы то тут причем?

Posted via ActualForum NNTP Server 1.4

14 апр 09, 18:02    [7063342]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить gbak из python?  [new]
Esperito
Member

Откуда:
Сообщений: 1441
Был бы это код на Delphi, я бы сказал, что Delphi тут не знают (с)
А так даже не знаю, что и сказать...
14 апр 09, 20:19    [7063774]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить gbak из python?  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1461
Вот готовый скрипт на питоне для запуска GBAK.
15 апр 09, 06:56    [7064527]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить gbak из python?  [new]
druff
Member

Откуда: Где-то на юге России
Сообщений: 140
fraks,

Спасибо большое! Выручили!
15 апр 09, 10:39    [7065249]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить gbak из python?  [new]
BorisMor
Member

Откуда:
Сообщений: 94
2 druff
Вопрос не в тему:
А почему для этой цели был выбран питон?
16 апр 09, 19:24    [7075424]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить gbak из python?  [new]
Kochmin_Alexandr
Member

Откуда:
Сообщений: 351

BorisMor wrote:

> Вопрос не в тему:
> А почему для этой цели был выбран питон?

ну а почему бы и нет ;)
Если б это винда была, еще стоило бы 10 раз подумать.
А на линуксах всяких мир проще.

Posted via ActualForum NNTP Server 1.4

17 апр 09, 09:39    [7076651]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить gbak из python?  [new]
Mexico
Member

Откуда: Мексика
Сообщений: 209
Я делал простой прогамма на shell для nbackup, через cron кажди час...
просто но мне помогло. Можеть быть кого еще прегодиться...
комментарый are welcome

#!/bin/sh

clear

# Firebird binary directory
ibbindir=/opt/firebird/bin
# Firebird database directory
dbdir=/var/db/firebird
# Firebird backup directory
bkdir=$dbdir/backup

#username and password
username="SYSDBA"
password="masterkey"

#Date
suffix=`date +%y%m%d%H`
day=`date +%d`
hour=`date +%k`

dayname=`date +%u`
increment="10";
namedel="";

# This is used to delete the files older than a week
# hourly and daily are not necessary after a week (maybe are!)
suffixdel=`date -d "8 days ago " +%y%m%d`

echo "Starting ........."
echo "-----------------------------------------"

#Check if the first day of the month
if [ $day == "01" ] && [ $hour -eq 6 ]
then
    echo "Monthly backup"
    increment="0";


#Check for a weekly backup
elif [ $dayname == "7" ] && [ $hour -eq 7 ]
then
    echo "Weekly Backup"
    increment="1";

#Check for a daily backup
elif [ $hour -eq 8 ]
then
    echo "Daily Backup"
    increment="2"
    namedel=${suffixdel}

#Check the hourly backup, for me this is enough
elif [ $hour -ge 9 ] && [ $hour -le 23 ]
then
    echo "Hourly Backup"
    increment="3"
    namedel=${suffixdel}

#Well, we have a break, do nothing
else
    echo "Time to sleep, We are doing nothing"
fi

# Database directory


#List the directory and backup each file on it
for i in $(ls -C1d $dbdir/*.fdb)
 do

  #get the name of the Database
  onlyname=$(echo $i | awk '{ gsub(/\w+\//,"", $1); print}')

  dbfile=${dbdir}$onlyname
  bkfile=${bkdir}$onlyname.${suffix}.${increment}.nbk

  #security we need do nothing here
  if [ $increment != "10" ]
    then
      echo "Starting backup....."
      if  $ibbindir/nbackup -U $username -P $password  -B ${increment} ${dbfile} ${bkfile}
      then
         echo Backup for $onlyname
         echo finished  `date` ...
         echo "-----------------------------------------"
         #tar zcvf ${bkfile}.tgz ${bkfile}
         #Delete the file!!!
         #rm $bkfile
      fi

      filetodelete=${bkdir}$onlyname.${namedel}`date +%H`.${increment}.nbk
      if [ -e $filetodelete ]
       then
         echo "Deleting the old file" $filetodelete
         rm $filetodelete
     fi
fi

 done

echo "Finish and going Home!!"
----------------------------------------------
Sorry, my Russian is not as good as my Spanish
21 апр 09, 15:22    [7092683]     Ответить | Цитировать Сообщить модератору
 Re: Как запустить gbak из python?  [new]
druff
Member

Откуда: Где-то на юге России
Сообщений: 140
BorisMor,
Отчасти из-за его кроссплатформенности, отчасти оттого, что я с .bat файлами совершенно не дружу, а питоном занимаюсь и изредка пишу скрипты на нём. Зачастую проще и быстрее на питоне написать обработку каких-нибудь текстовых файлов, чем открывать для этого делфи.
24 апр 09, 11:01    [7108899]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить