Hi,
Hope everyone doing well.
I have written a shell script remove.sh to remove the files from SFTP server.
My script is as below:
#!/bin/sh
USERNAME="myuser"
HOSTNAME="myhost"
sftp $USERNAME@$HOSTNAME << EOF
cd /loc/subloc
rm file.txt
quit
EOF
By using this shell script from our Unix environment - I am able to delete the file which is in SFTP location.
But when I am trying to execute the above shell script in OS Command in ODI package - I am experincing the below error.
- com.sunopsis.dwg.function.SnpsFunctionBaseException: ODI-30038: OS command returned 255.
at com.sunopsis.dwg.tools.OSCommand.actionExecute(OSCommand.java:295)
at com.sunopsis.dwg.function.SnpsFunctionBase.execute(SnpsFunctionBase.java:296)
at oracle.odi.runtime.agent.execution.SessionTask.execIntegratedFunction(SessionTask.java:870)
at oracle.odi.runtime.agent.execution.SessionTask.executeOdiCommand(SessionTask.java:551)
at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:32)
at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:18)
at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:52)
at oracle.odi.runtime.agent.execution.SessionTask.processTask(SessionTask.java:189)
at oracle.odi.runtime.agent.execution.SessionTask.doExecuteTask(SessionTask.java:111)
at oracle.odi.runtime.agent.execution.AbstractSessionTask.execute(AbstractSessionTask.java:864)
at oracle.odi.runtime.agent.execution.SessionExecutor$SerialTrain.runTasks(SessionExecutor.java:2024)
at oracle.odi.runtime.agent.execution.SessionExecutor.executeSession(SessionExecutor.java:562)
at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:718)
at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:611)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:203)
at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doProcessStartAgentTask(TaskExecutorAgentRequestProcessor.java:800)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$1400(StartSessRequestProcessor.java:74)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:702)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:180)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:108)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at oracle.odi.runtime.agent.execution.job.OdiJob.call(OdiJob.java:73)
at oracle.odi.runtime.agent.execution.job.OdiJob.call(OdiJob.java:73)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
OdiOSCommand Properties :-
Command to execucte : ./remove.sh (also tried sh ./remove.sh)
Working directory : /source/scripts/
To add more in detail, Before this step I am able to execute SFTPGET component in ODI and pull the file.
I have given 0777 privileges to script and script folder as well.
Can anyone please advise ?
Thanks in advance.
Dinesh.