You are already using the -v parameter on scp, so you are getting all
the logging that is available, but it doesn't look like you are
capturing that log anywhere. If you run the command interactive by
calling STRQSH and then running your scp command do you get enough
logging on your screen? If so, you just need to capture the output. Easy
way is just to redirect the output of your command with > into a file,
and then read through that file. Hard way is to do something like this:
http://www-01.ibm.com/support/docview.wss?uid=nas8N1012360
Kevin Bucknum
Senior Programmer Analyst
MEDDATA/MEDTRON
Tel: 985-893-2550
-----Original Message-----
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of
Don Brown
Sent: Monday, August 31, 2015 5:47 PM
To: Midrange Systems Technical Discussion
Subject: Verbose logging when using scp
Reposted to Midrange L (Originally incorrectly posted on Web400)
Could someone assist in my understanding of what logging is available
when
running Secure File Transfer..
First, what am I trying to do ?
I need to establish a secure connection to a bank and download file(s)
on a daily basis. If the download fails or succeeds I want a program to
be able to record a log of what happened.
I have the download of the file working But I am unable to get any
logging from the transfer.
I have created user: SFTPUSER
I have generated my rsa keys and the public key sent to the bank I can
successfully connect and transfer files between the bank and the 400
- Both interactively and in Batch
I have not been able to generate a log for any transfers.
As the process can be run by a number of different users I am switching
user profile to SFTPUSER (see sample code below)
I am setting the environment variable QIBM_QSH_CMD_OUTPUT assigning a
log output file
I am now using the QSH command, previously I was using a call to
QP2SHELL to run SCP With the amount I have read I am now more confused
if I should be using SCP or SFTP.
I am using SCP as there is only a single file to be transferred at a
time and therefore saw no need to create a script file - Do I have to
use a script file to get a log ? and then use SFTP instead of SCP ?
I know I can use environment variable QIBM_QSH_CMD_ESCAPE_MSG to enable
an
*Escape message to be sent if the transfer fails and I can monitor for
this in my program BUT this does not provide a reason for the failure.
If someone could point me in the right direction or has a working sample
it would really be appreciated.
Sample/Sudo code
d GetProfile PR extpgm('QSYGETPH')
d UserID 10A const
d Password 10A const
d Handle 12A
d ErrorCode 32766A options(*varsize)
d SetProfile PR extpgm('QWTSETP')
d Handle 12A
d ErrorCode 32766A options(*varsize)
d RlsProfile PR extpgm('QSYRLSPH')
d Handle 12A
d ErrorCode 32766A options(*varsize)
d ExecCmd PR extpgm('QCMDEXC')
d cmd 265 options(*varsize) const
d cmdlen 15p 5 const
/* Retrieve user profile handles and switch to SFTPUSER */
GetProfile('*CURRENT':'*NOPWD':OrigUser:dsEC);
GetProfile('SFTPUSER':'*NOPWD':SftpUser:dsEC);
SetProfile(SftpUser:dsEC)
/* Set environment variable for output file name */
cmd = 'ADDENVVAR ENVVAR(QIBM_QSH_CMD_OUTPUT) +
VALUE(''FILE=/qsys.lib/xapdta.lib/poslogpf.file/poslogpf.mbr'') +
REPLACE(*YES)';
ExecCmd(cmd:cmdlen);
/*Retrieve file from the bank */
cmd = 'QSH CMD('''
'/QOpenSys/QIBM/ProdData/SC1/OpenSSH/openssh-4.7p1/bin/scp''' ' +
'''-B'' ' +
'''-v'' ' +
''''-i /home/sftpuser/.ssh/id_rsa''' ' +
''''BANKUSER@xxxxxxxxxxxxxxx:/IN/CCL-B-20150808.csv''' '
+
''''/home/sftpuser/CCL-B-20150808a.csv''')';
ExecCmd(cmd:cmdlen);
Thank you for your assistance.
Don Brown
SK Replied to original post ...
Don,
Please don't reply to an existing thread when you want to start a new
discussion.. I nearly missed your message because it's a reply to a
Kelly Cookson message that I didn't read. DB Thanks will not do in the
future.
Also, your question doesn't seem related to web... so would be more
appropriate on Midrange-L DB I have reported on Midrange L
Also, it's not clear what sort of a log you're looking for? Why would
there be a log of this?
DB I thought by specifying the environment variable QIBM_QSH_CMD_OUTPUT
and
requesting verbose logging on the scp command I would get a detail log
of
the transfer.
If a transfer fails i would like to know why, rather than just
monitoring
for a failure message.
You mention that you're using SCP because you have only one file to
transfer -- please be aware that SCP is capable of transferring multiple
files at once, this is not a reason to choose SCP or SFTP, both can do
multiple files. The advantage to SFTP is that it can do other things
like delete, rename, etc. SCP can only copy files, nothing else, it
can't do those other things. The advantage to SCP is that it's simpler.
-SK
DB Reading between the lines I think either scp or sftp would be
suitable
for my requirement.
I also think that either would provide suitable logging if I can
determine
why I am not getting anything.
Is there any way to debug not getting a log after setting the
environment
variable ?
As an Amazon Associate we earn from qualifying purchases.