2015-10-28 2 views
0

Я новичок в TCL и получил кое-что, что мне нужно для автоматизации, и мне нужен мой код для регистрации всех команд и результатов после процесса входа в систему. Моя основная проблема заключается в том, что мне нужно создавать отдельный файл журнала каждый раз, когда я запускаю скрипт, и один из способов, которым я узнал, - это «добавить» уникальную «метку времени» к имени файла.Создайте новый файл каждый раз, когда запускается скрипт TCL.

Здесь вы увидите, что каждый раз, когда я пытаюсь добавить переменную «$ time» к имени файла, она возвращает: не удалось открыть »15-10-28/11: 57: 10 - xxx.xxxx.xxxx.txt ": нет такого файла или каталога при выполнении "LOG_FILE "$ NewFile"" (файл строки 31 "SSH-test.tcl")

Мой код выглядит следующим образом :

set user [lrange $argv 0 0] 
set password [lrange $argv 1 1] 
set ipaddr [lrange $argv 2 2] 
set arg1 [lrange $argv 3 3] 
set systemTime [clock seconds] 
set time [clock format $systemTime -format %y-%m-%d/%H:%M:%S--] 
set a "ssh" 
set suffix ".txt" 
append newfile "${a}${arg1}${suffix}" 

set timeout -1 
# now connect to remote UNIX box (ipaddr) with given script to execute 

spawn ssh [email protected]$ipaddr 
match_max 100000 
# Look for passwod prompt 
expect "*?assword:*" 
# Send password aka $password 
send -- "$password\r" 
log_file "$newfile" ; 
expect "*#" 
send -- "\r" 
send_user "This is the $argv0 Script" 
send -- "scm $arg1\r" 
expect "*#" 
send -- "exit\r" 
expect eof 

Если я использую 'установить имя файла "$ {а} $ {arg1} $ {суффиксом}"' строка и 'log_file "$ имя_файла"' это работает просто отлично, но это будет ар откройте новую информацию до уже существующего файла, и каждый раз, когда я запускаю скрипт, я хочу новый файл.

Если я использую «append newfile» $ {a} $ {arg1} $ {suffix} "'и" log_file "$ newfile", он не будет работать и возвратит уже упомянутую ошибку.

Надеюсь, вы, ребята, можете мне помочь и заблаговременно за любую поддержку.

ответ

0

Вы создаете метку времени с /.

set time [clock format $systemTime -format %y-%m-%d/%H:%M:%S--] 

Хотя добавление этой переменной newfile, она станет 15-10-28/11:57:10--xxx.xxxx.xxxx.txt.

Ожидается, что существует папка с именем 15-10-28 и под которой я должен создать файл 11:57:10--xxx.xxxx.xxxx.txt. Поскольку эта папка не доступна, вы получаете сообщение об ошибке, как no such file or directory

+0

я пытался исправить, что и до сих пор есть ошибка, это измененный код: заданное время [часы формат $ SystemTime -format% Y-% m-% d% H:% M:% S] набор a "ssh-" set suffix ".txt" #append newfile "$ {a} $ {arg1} $ {time} $ {suffix}" – Sleepgoing

+0

Снова 'Нет такого файла или каталога' ошибка? – Dinesh

+0

Неа, теперь это: «не может открыть "SSH-xxxx.xxxx.xxxx15-10-2813: 53: 41.txt": ошибка протокола при выполнении "LOG_FILE "$ NewFile"" (файл "ssh-test.tcl" строка 31) ' – Sleepgoing

0

После выяснить, что формат дата был Мессинг моего кода, я начал играть вокруг со специальными символами и получил это работает так:

set time [clock format $systemTime -format %a_%b_%d_%[email protected]%H'%M'%S] 

Это не желаемый формат, но по крайней мере я получил его работу, как я и предполагал.

Смежные вопросы