python脚本用于linux,用于Linux命令的脚本Python

我有一个问题。我一直在努力学习Python。对于一个项目,我想为我的备份服务器制作一个ncurses GUI。我的备份服务器运行rdiff-backup,我想让ncurses采用变量名称并将它们插入到我的脚本中。我一直在努力做大量的阅读,所以我不问愚蠢的问题。用于Linux命令的脚本Python

这里是我的运行脚本功能:

def runScript():

# Cannot concatenate 'str' and 'list' objects

#script = rdiff + rdiffArgs

script = rdiff + ' ' + rdiffVerbosity + ' ' + rdiffStatistics \

+ ' ' + clientName + '@' + clientHost + '::' + clientDir \

+ ' ' + serverDir

os.system(script)

我原本以为会是整洁是所有的变量添加到列表中,这样我就可以只运行说

script = rdiff + rdiffArgs

有没有更好的方法来做到这一点没有所有的空间连接?

感谢您的协助

编辑:让我张贴到目前为止的整个剧本。我也不是很清楚,我真的感谢您的帮助和耐心

#!/usr/bin/env python

import os

import smtplib

# Global variables

rdiff = '/usr/bin/rdiff-backup'

rdiffVerbosity = '-v5'

rdiffStatistics = '--print-statistics'

emailSmtp = 'smtp.gmail.com'

smtpPort = '465'

emailUsername = 'reports'

emailPassword = '3kc9dl'

emailTo = '[email protected]'

emailFrom = '[email protected]'

serverName = 'root'

serverHost = 'SV-Datasafe'

serverDir = '/srv/backup/SV-Samba01'

clientName = 'root'

clientHost = 'SV-Samba01'

clientDir = '/srv'

rdiffArgs = rdiffArgs = [rdiffVerbosity, rdiffStatistics, \

clientName + '@' + clientHost + '::' \

+clientDir + ' ' + serverDir]

time = ''

dateStamp = datetime.now()

def sendEmail():

subject = dateStamp + clientName

body = clientDir + ' on ' + clientHost + ' backed up to ' + serverName + \

' in the directory ' + serverDir + ' on ' + dateStamp

message = """\

From: %s

To: %s

Subject: %s

%s

""" % (emailFrom, emailTo, subject, body)

deliverEmail = smtplib.SMTP(emailSmtp, port=smtpPort)

deliverEmail.login(emailUsername, emailPassword)

def runScript():

# Cannot concatenate 'str' and 'list' objects

#script = rdiff + rdiffArgs

script = rdiff + ' ' + rdiffVerbosity + ' ' + rdiffStatistics \

+ ' ' + clientName + '@' + clientHost + '::' + clientDir \

+ ' ' + serverDir

os.system(script)

# TODO:: Logging

2010-01-09

Dan

+0

不知道你的问题是什么,但是从我的理解,你想rdiffArgs是一个字符串列表,并添加文字'rdiff'到那个前面?我认为你正在寻找: 脚本= [rdiff] + rdiffArgs或''.join([rdiff] + rdiffArgs)如果你想它作为一个字符串。 –

2010-01-09 03:30:54

+0

这将导致一个列表。提问者可能想要得到的字符串,因为这是送入os.system()的东西。 –

2010-01-09 03:32:07

+1

'os。system()'不应该被使用,所以任何答案都可以被认为是不正确的。 –

2010-01-09 04:11:10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值