Menu

SFTP sending

Developers
2013-03-10
2013-10-22
  • Sven Borkert

    Sven Borkert - 2013-03-10

    Hello,

    I was trying to get a job up and running to send a file via SFTP. Not matter what I try, I always end up with an error like this:

    2013-03-10 17:25:58.599 [ERROR] ERROR [main] (SOSDExJSAdapterClass.java:85) - SOSDExJSAdapterClass ended abnormal.
    2013-03-10 17:25:58.600 [ERROR] ERROR [main] (SOSDExJSAdapterClass.java:86) - SOSVfs_E_0030: Parameter Konflikt bei Optionen 'SOSFtpOptionsSuperClass.file_path=, SOSFtpOptionsSuperClass.file_spec=^.$': die Verwendung eines Parameters schliesst die Verwendung der anderen Parameter aus.
    2013-03-10 17:25:58.600 [ERROR] com.sos.VirtualFileSystem.FTP.SOSFTPOptions.CheckMandatory(SOSFTPOptions.java:370)
    2013-03-10 17:25:58.600 [ERROR] sos.scheduler.job.SOSDExJSAdapterClass.doProcessing(SOSDExJSAdapterClass.java:115)
    2013-03-10 17:25:58.600 [ERROR] sos.scheduler.job.SOSDExJSAdapterClass.spooler_process(SOSDExJSAdapterClass.java:81)
    2013-03-10 17:25:58.600 [ERROR]
    2013-03-10 17:25:58.601 [ERROR] COM-80020009 Ausnahmefehler aufgetreten. [step] [] [Z-JAVA-105 Java exception com.sos.JSHelper.Exceptions.JobSchedulerException("SOSVfs_E_0030: Parameter Konflikt bei Optionen 'SOSFtpOptionsSuperClass.file_path=, SOSFtpOptionsSuperClass.file_spec=^.*$': die Verwendung eines Parameters schliesst die Verwendung der anderen Parameter aus."), method=spooler_process()Z [], in Remote_module_instance_server::step], method=call
    2013-03-10 17:25:58.602 [info] Job borkert/SFTPSend terminated.
    2013-03-10 17:25:58.609 [info] com.sos.JSHelper.Exceptions.JobSchedulerException: SOSVfs_E_0030: Parameter Konflikt bei Optionen 'SOSFtpOptionsSuperClass.file_path=, SOSFtpOptionsSuperClass.file_spec=^.
    $': die Verwendung eines Parameters schliesst die Verwendung der anderen Parameter aus.
    2013-03-10 17:25:58.609 [info] at com.sos.VirtualFileSystem.FTP.SOSFTPOptions.CheckMandatory(SOSFTPOptions.java:370)
    2013-03-10 17:25:58.609 [info] at sos.scheduler.job.SOSDExJSAdapterClass.doProcessing(SOSDExJSAdapterClass.java:115)
    2013-03-10 17:25:58.609 [info] at sos.scheduler.job.SOSDExJSAdapterClass.spooler_process(SOSDExJSAdapterClass.java:81)

    The job file looks like this, I created it with the wizard:

    <job title="API Job for JobScheduler Advanced Data Exchange" order="no" name="SFTPSend">
    <description>
    <include file="jobs/jadeJob.xml"/>
    </description>

    <params >
        <param  name="host" value="10.0.1.57"/>
    
        <param  name="local_dir" value="c:\test"/>
    
        <param  name="operation" value="send"/>
    
        <param  name="port" value="22"/>
    
        <param  name="protocol" value="sftp"/>
    
        <param  name="remote_dir" value="/home/borkert/test"/>
    
        <param  name="user" value="borkert"/>
    
        <param  name="jump_command_delimiter" value="%%"/>
    
        <param  name="overwrite_files" value="true"/>
    
        <param  name="password" value="lalala"/>
    </params>
    
    <script  language="java" java_class="sos.scheduler.jade.JadeJob"/>
    
    <start_when_directory_changed  directory="c:\test" regex="\.txt$"/>
    
    <run_time />
    

    </job>

    Regards,

    Sven

     
  • Uwe Risse

    Uwe Risse - 2013-10-22

    I'm missing the parameters ssh_auth_method=publickey and file_spec=^.+.txt$

    Another option is to use copy instead of send. With this approach you can copy files between different host withhout touchdown and by using different protocols for source and target. Please have a look on this set of parameters

    <params >
        <param  name="operation" value="copy"/>
    
        <param  name="remove_files" value="true"/>
    
        <param  name="file_spec" value="^.+\.txt$"/>
    
        <param  name="source_host" value="myServer"/>
    
        <param  name="source_user" value="test"/>
    
        <param  name="source_dir" value="/home/test/temp"/>
    
        <param  name="source_protocol" value="ftp"/>
    
        <param  name="source_ssh_auth_method" value="password"/>
    
        <param  name="target_protocol" value="file"/>
    
        <param  name="target_host" value="localhost"/>
    
        <param  name="target_dir" value="c:\temp"/>
    
        <param  name="source_password" value="myPwd"/>
    </params>
    
     

Log in to post a comment.