Python batching on XP

D

durumdara

Hi !

I want to write a program that backup some databases in the night.

Pseudo like this:

try:
if cmd('net stop dbservice'):
s=c://backup'+str(time.time())+'.zip'
if cmd('zipit c:\\database '+s):
if cmd('map drive \\\\backupdrive\\c$ y -user BACKUP -pwd SECRET'):
if cmd('copy '+s+' y:\\'):
LogSucc()
finally:
cmd('net start dbservice')

I'm trying with os.system() commands.
But that is printing the result message to the screen, not to a tuple,
like commands.|getstatusoutput().
I need to store this message, because I want to log everything that this
program do/print; every of the messages.

So: how to I capture the screen, or how to I use
|commands.|getstatusoutput() to access the Windows batch/cmd commands,
and get their errors/statuses ?

Please help me !

Thanks for it: dd
|
 
D

durumdara

Hi !

I have Py 2.3.5, and subprocess is placed in version 2.4.

The os.popen is not good, because it is not get return value. I can read
the return value, but the message is os dependent (XP, 2k, NT).
I create this function. It is not too good, but it is working:

def Cmd(cmd,tmpdir="./"):
outfn='%s/_out.msg'%tmpdir
errfn='%s/_err.msg'%tmpdir
post="1>%s 2>%s"%(outfn,errfn)
cmd2='%s %s'%(cmd,post)
r=os.system(cmd2)
f=open(outfn,"r")
try:
s1=f.read()
finally:
f.close()
f=open(errfn,"r")
try:
s2=f.read()
finally:
f.close()
s="\n".join([s1,s2]).strip()
return (r,s)

Anyone have a better idea ?

Thanks for it: dd
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,264
Messages
2,571,323
Members
48,006
Latest member
TerranceCo

Latest Threads

Top