Hi all,
For some days I am breaking my mind about this:
I'd like to run some commands on a Linux server (via SSH) to create an automated backup. I want the script/job to wait for a prompt or response of the server before it enters the next command.
(1) I've made a device template:
-----------------
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by () -->
<!--SolarWinds Network Management Tools-->
<!--Copyright 2005 SolarWinds.Net All rights reserved-->
<Configuration-Management Device="Cisco CMX" SystemOID=" 1.3.6.1.4.1">
<Commands>
<Command Name="RESET" Value="terminal width 0${CRLF}terminal length 0"/>
<Command Name="MenuBased" Value="true"/>
<Command Name="Reboot" Value="reload${CRLF}Yes"/>
<Command Name="RebootAt" Value="reload at ${HH}:${NN}${CRLF}Yes"/>
<Command Name="EnterConfigMode" Value="config terminal"/>
<Command Name="ExitConfigMode" Value="end"/>
<Command Name="Startup" Value="configuration"/>
<Command Name="Running" Value="running"/>
<Command Name="DownloadConfig" Value="Show ${ConfigType}"/>
<Command Name="UploadConfig" Value="${EnterConfigMode}${CRLF}${ConfigText}${CRLF}${ExitConfigMode}"/>
<Command Name="DownloadConfigIndirect" Value="copy ${ConfigType} ${TransferProtocol}://${StorageAddress}/${StorageFilename}"/>
<Command Name="UploadConfigIndirect" Value="copy ${TransferProtocol}://${StorageAddress}/${StorageFilename} ${ConfigType}"/>
<Command Name="EraseConfig" Value="write erase${CRLF}Yes"/>
<Command Name="SaveConfig" Value="write memory"/>
<Command Name="Version" Value="show version"/>
<Command Name="VirtualPrompt" Value="cmxadmin@"/>
<Command Name="LS" Value="ls"/>
<Command Name="TOUCH" Value="touch test.bmp"/>
<Command Name="StartBackup" Value="cmxos backup --online --path /tmp --all" RegEx="[cmxadmin@CMX1501 ~]"/>
<Command Name="WriteSFTP1" Value="cd /tmp" RegEx="[cmxadmin@CMX1501 tmp]"/>
<Command Name="WriteSFTP2" Value="sftp user@10.10.10.10" RegEx="password:"/>
<Command Name="EnterPwd" Value="xxxxxxxx" RegEx="sftp>"/>
<Command Name="SFTPCopy1" Value="cd /backup/ciscowifi/mse-cmx" RegEx="sftp>"/>
<Command Name="SFTPCopy2" Value="put /tmp/cmx_backup_*" RegEx="sftp>"/>
<Command Name="SFTPQuit" Value="quit" RegEx="sftp>"/>
<Command Name="FileRemove1" Value="cd /tmp" RegEx="[cmxadmin@CMX1501 tmp]"/>
<Command Name="FileRemove2" Value="rm cmx_backup_* -f" RegEx="[cmxadmin@CMX1501 tmp]"/>
<Command Name="DisconnectSSH" Value="exit"/>
<Command Name="NewStartBackup" Value="cmxos backup --online --path /tmp --all" RegEx="[cmxadmin@CMX1501 ~]"/>
<Command Name="CD" Value="cd /tmp"/>
</Commands>
</Configuration-Management>
---------------------------
(2) I run the command from a job:
${StartBackup}
${WriteSFTP1}
${WriteSFTP2}
${EnterPwd}
${SFTPCopy1}
${SFTPCopy2}
${SFTPQuit}
${FileRemove1}
${FileRemove2}
${DisconnectSSH}
(3) When I check the command history on the Linux Server, all commands are entered at the same time.. This is not what I want.
Does somebody have an idea what I should do to run the script correctly?
Thank you!