I have a pretty demanding requirement for an SFTP script I have been trying to put together.
I have nearly 100 files (all with the names staring with T_PROD) generated in my local server daily. I need to transfer each of these files to a remote server via SFTP (that's a client demand, can't use SSH or others). Since these files are pretty big (approx 10 MB each), we need to have a check on succesful transfer of each of the files. In case a file is not transferred properly, we will be trying to re-send the file, at max 3 times.
Since it's SFTP, we're not allowed to execute shell commands in the remote server. I tried creating the md5sum hash values, but stuck thereafter. How do we identify the exact files those failed the sanity check, and try re-sending them?
A barebone structure of the script is as below
Code:
#!/bin/bash
. ./params # parameter file
cd output
sftp ${FTPUSER}@${FTPSERVER} << EOF
cd $FTPFOLDER
put T_PROD*
!md5sum * > chklist.md5
bye
EOF
I'm running this script in Linux kernel 2.6.39
Do let me know if any further information is required.
I get this error when I try to FTP from an HP Alpha Server to a UNIX box.
FATAL: BUILD13$:SSHFC_TRANSFER.C;1:1835 SshFCTransfer (function name unavailable) Assertion failed: tdata
->current_dest_file->attributes->flags & 0x00000004
the sftp /put fails just before it does the actual transfer.... (2 Replies)
Hi,
While I am trying SFTP my machine to another unix machine ,
it was working fine till 10 min back.
But now i am getting the below error
"Request for subsystem 'sftp' failed on channel 0"
Could you please someone help me to solve or analyise the root cause...
Cheers:b:,
Mahiban (0 Replies)
Hi friends,....
am sindhiya,
i have joined as AIX level 1 support.
help me to identify the failed pv in vg which has some 4 physical volumes? (2 Replies)
Good Evening,
2 years ago, I set up an Ubuntu file-server for a friend, who is a photograph amateur. Basically, the server offers a software RAID-5 that can be accessed remotely from a MAC. Unfortunately, I didn't labeled the hard drives (i.e. which physical drive corresponds to the /dev/sdX... (2 Replies)
I would like to create console application in c# to automate the process of downloading some files from a SFTP server to my local hard drive at a set time each week/day.
SFTP Server installed OpenSSH for windows and client machine also.
Any ideas how I could do such a task? or sample code.
... (0 Replies)
hi,
how can i know whether a command inside an sftp script has failed or not?
i have a sftp expect script
#!/usr/bin/expect
spawn /usr/bin/sftp abc@ftp.abc.com
expect "sftp>"
send "cd dir\r"
expect "sftp>"
send "mput abc.txt\r"
expect "sftp>"
send "mput def.xls\r"
expect "sftp>"... (5 Replies)
I am working on a shell script where after making sftp connection to a remote server the file are being transferred. The problem is how to capture return code for the file which is missing at the remote location. I have tried to capture the return code which return value of "0" even the transfer of... (4 Replies)
Hi Guys,
I have performed OBP & ALOM upgrade on V240 system. One of my system, running Solaris 10, having issue to identify flash rom during ALOM 1.6.10 version upgrade (OBP upgraded to latest one).
May I know what the reason of this error and how can I fix it so I can upgrade ALOM using... (0 Replies)
Hi ALL,
I have a shell script using except :
#!/bin/bash
HOST=abc.com
USER=abc
PASSWORD=123
SOURCE_FILE=file1.zip
TARGET_DIR=/A/B/C
/usr/bin/expect <<- EOF
spawn /usr/bin/sftp $USER@$HOST
expect "password:"
send "$PASSWORD\r"
expect "sftp>"
send "cd patch1\n"
... (11 Replies)
Discussion started by: Asad
11 Replies
LEARN ABOUT DEBIAN
libssh2_sftp_write
libssh2_sftp_write(3) libssh2 manual libssh2_sftp_write(3)NAME
libssh2_sftp_write - write SFTP data
SYNOPSIS
#include <libssh2.h>
#include <libssh2_sftp.h>
ssize_t libssh2_sftp_write(LIBSSH2_SFTP_HANDLE *handle,
const char *buffer,
size_t count);
DESCRIPTION libssh2_sftp_write(3) writes a block of data to the SFTP server. This method is modeled after the POSIX write() function and uses the same
calling semantics.
handle - SFTP file handle as returned by libssh2_sftp_open_ex(3).
buffer - points to the data to send off.
count - Number of bytes from 'buffer' to write. Note that it may not be possible to write all bytes as requested.
libssh2_sftp_handle(3) will use as much as possible of the buffer and put it into a single SFTP protocol packet. This means that to get
maximum performance when sending larger files, you should try to always pass in at least 32K of data to this function.
WRITE AHEAD
Starting in libssh2 version 1.2.8, the default behavior of libssh2 is to create several smaller outgoing packets for all data you pass to
this function and it will return a positive number as soon as the first packet is acknowledged from the server.
This has the effect that sometimes more data has been sent off but isn't acked yet when this function returns, and when this function is
subsequently called again to write more data, libssh2 will immediately figure out that the data is already received remotely.
In most normal situation this should not cause any problems, but it should be noted that if you've once called libssh2_sftp_write() with
data and it returns short, you MUST still assume that the rest of the data might've been cached so you need to make sure you don't alter
that data and think that the version you have in your next function invoke will be detected or used.
The reason for this funny behavior is that SFTP can only send 32K data in each packet and it gets all packets acked individually. This
means we cannot use a simple serial approach if we want to reach high performance even on high latency connections. And we want that.
RETURN VALUE
Actual number of bytes written or negative on failure.
If used in non-blocking mode, it returns LIBSSH2_ERROR_EAGAIN when it would otherwise block. While LIBSSH2_ERROR_EAGAIN is a negative num-
ber, it isn't really a failure per se.
If this function returns 0 (zero) it should not be considered an error, but simply that there was no error but yet no payload data got sent
to the other end.
ERRORS
LIBSSH2_ERROR_ALLOC - An internal memory allocation call failed.
LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.
LIBSSH2_ERROR_SOCKET_TIMEOUT -
LIBSSH2_ERROR_SFTP_PROTOCOL - An invalid SFTP protocol response was received on the socket, or an SFTP operation caused an errorcode to be
returned by the server.
SEE ALSO libssh2_sftp_open_ex(3)libssh2 0.15 1 Jun 2007 libssh2_sftp_write(3)