Python ClearCase Скачать Vobs Popen Password Программа BASH Sketchy
Я вчера закодировал эту программу, и она действительно работала, за исключением случаев, когда она запускалась CRON. Сегодня я запустил тот же скрипт, и он не работает. Сценарий будет запущен без каких-либо ошибок трассировки, и он скопирует верхнюю папку (vob) из представления ClearCase, но не из реальных важных данных в папках и файлах ниже целевой папки.
Вот мой скрипт на Python.
def obtainCode(view="My_VIEW", folder="/my_folder"):
"""Download code from ClearCase's File System and put it on the hard-drive"""
dest = '/etc/foo'
password = 'passwords'
v1 = subprocess.Popen(['cleartool', 'setview', view], shell=True, stdout=subprocess.PIPE)
print "v1 = ", v1
print "view maybe set :/"
c1 = subprocess.Popen(['sudo', '-p', '', '-S', 'cp', '-r', folder, dest], stdin=subprocess.PIPE)
c1.stdin.write(password + '\n')
c1.stdin.close()
c1.wait()
#### Close View and Stop Processes ####
v2 = subprocess.Popen(['cleartool', 'endview', view], shell=True, stdin=v1.stdout, stdout=subprocess.PIPE)
v2.kill()
v1.kill()
Кто-нибудь знает: 1) что идет не так 2) почему это будет работать вчера, а не сегодня 3) лучший способ сделать это?
Спасибо за ваше время и внимание.
1 ответ
Попробуй и не используй setview
,
Вам это не нужно, и вместо этого вы можете использовать полный путь представления.
cleartool startview yourDynamicView
cd /view/yourDynamicView/vobs/yourVob
Я уже упоминал об опасности использования setview (" Python и ClearCase setview").
Он создает подпроцесс внутри вашего подпроцесса, который здесь не нужен.