Topic "Problem running shell script in linux using 'call' cmd in c#"

Author Message
eliba3

Guest


Problem running shell script in linux using 'call' cmd in c#:

I have run the following command to run shell script but nothing happened:

winscp.StandardInput.WriteLine("option batch abort");
winscp.StandardInput.WriteLine("option confirm off");
winscp.StandardInput.WriteLine("open ilvqa1");
winscp.StandardInput.WriteLine("a1234") ;
winscp.StandardInput.WriteLine("a1234") ;
winscp.StandardInput.WriteLine("ls") ;
winscp.StandardInput.WriteLine("cd /")
winscp.StandardInput.WriteLine("call /home/Versions/4.0.1.2/DBScripts/InfrastructureUtility/bin/Run_script")

Actually Run_script.sh is not run, Can u please help me solving this issue
Advertisements
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
First, you probably wanted to do:
winscp.StandardInput.WriteLine("open a1234:a1234@ilvqa1");
instead of:
winscp.StandardInput.WriteLine("a1234") ;
winscp.StandardInput.WriteLine("a1234") ;

If this does not help, please post a log file.
_________________
Martin Prikryl
eliba3

Guest


I have success connected to linux vm. so I think that the issue is not the connection.

I have a confidence problem to send you the log file:

Can u please just tell me if the following command is proper syntax for running shell script in c#?

winscp.StandardInput.WriteLine("call /home/Scripts/Run_script.sh");

( Remark I have run chmod 777 Run_script.sh before run this cmd )
eliba3

Guest


I have attached log.xml:

<?xml version="1.0" encoding="UTF-8"?>
<session xmlns="https://winscp.net/schema/session/1.0" name="pass@ilvq6n" start="2012-02-14T07:13:04.270Z">
<upload>
<filename value="c:\Run_script.sh" />
<destination value="/home/pass/QA/Versions/DD_4.0.1.2/DBScripts/InfrastructureUtility/bin/Run_script.sh" />
<result success="true" />
</upload>
<touch>
<filename value="/home/pass/QA/Versions/DD_4.0.1.2/DBScripts/InfrastructureUtility/bin/Run_script.sh" />
<modification value="2012-02-13T15:06:48.000Z" />
<result success="true" />
</touch>
<chmod>
<filename value="/home/pass/QA/Versions/DD_4.0.1.2/DBScripts/InfrastructureUtility/bin/Run_script.sh" />
<permissions value="rwxrwxrwx" />
<result success="true" />
</chmod>
<call>
<command value="/home/pass/QA/Versions/DD_4.0.1.2/DBScripts/InfrastructureUtility/bin/Run_script.sh" />
<destination value="/" />
<erroroutput value="Process Completed" />
<result success="false">
<message>Command '/home/pass/QA/Versions/DD_4.0.1.2/DBScripts/InfrastructureUtility/bin/Run_script.sh'
failed with return code 0 and error message
Process Completed.</message>
</result>
</call>
</session>
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
eliba3 wrote:
winscp.StandardInput.WriteLine("call /home/Scripts/Run_script.sh");

Yes that's correct.

As you can see from the log file, there's no actual problem. Just that WinSCP considers remote commands that has any error output as failed.
I'll change with in the next release:
https://winscp.net/tracker/show_bug.cgi?id=797

As a workaround, you can meanwhile do:
call /home/Scripts/Run_script.sh 2>&1
(the 2>&1 redirects error output to standard output)
Guest




I have used your workaround. it works. Thanks

I have another question:

My shell script contains several sub shell commands:

i.e.
Run_script.sh file contains:
==============
. ./Param.sh

cd "Internal"

./Installer1.sh
./Installer2.sh

cd ../
==============
The issue is that when running Run_script.sh
( remark: Param.sh is in same work directory as Run_script.sh, and Installer1/2.sh are in internal directory. ( one directory down )

I got the following errors:

<call>
<command value="/home/Installers/Run_script.sh 2&gt;&amp;1" />
<destination value="/home/" />
<output value="/home/Installers/Run_script.sh: line 3: ./Param.sh: No such file or directory
/home/Installers/Installer1.sh: line 5: cd: Internal : No such file or directory
/home/Installers/Installer1.sh: line 7: ./Installer1.sh: No such file or directory
/home/Installers/Installer2.sh: line 8: ./Installer2.sh: No such file or directory" />
<result success="true" />
</call>

My question is: I thought that when running a shell script it will run also all sub shell scripts in the file(Run_script.sh). Same as running it from Terminal console in winscp.
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
Anonymous wrote:
My question is: I thought that when running a shell script it will run also all sub shell scripts in the file(Run_script.sh). Same as running it from Terminal console in winscp.

Sure it does. That's why you are getting the errors.
Your script expects to be run with /home/Scripts/ as current working directory.
So you have to change to this directory before executing call:
winscp.StandardInput.WriteLine("cd /home/Scripts/");
winscp.StandardInput.WriteLine("call Run_script.sh");
_________________
Martin Prikryl
Guest




Thanks. It finally works. Great !!!

Just for your info:

I got to enter the full path of the shell script although the "cd" cmd before, like:

winscp.StandardInput.WriteLine("cd /home/Scripts/");
winscp.StandardInput.WriteLine("call /home/Scripts/Run_script.sh");

If NOT, I got the following error:

<call>
<command value="Run_script.sh" />
<destination value="/home/Scripts/" />
<erroroutput value="-bash: line 6: Run_script.sh: command not found" />
<result success="false">
<message>Command 'Run_script.sh'
failed with return code 127 and error message
-bash: line 6: Run_script.sh: command not found.</message>
</result>
</call>
Guest




I still got the following error in latest winscp version 4.3.7:

<call>
<command value="&quot;/home/Versions/4.0.2.0/DB Scripts/Infrastructure Utility/bin/SIS_CREATE_SH_FILES.sh&quot;" />
<destination value="/home/Versions/4.0.2.0/DB Scripts/Infrastructure Utility/bin" />
<erroroutput value="Process Completed
Process Completed" />
<result success="false">
<message>Command '&quot;/home/Versions/4.0.2.0/DB Scripts/Infrastructure Utility/bin/SIS_CREATE_SH_FILES.sh&quot;'
failed with return code 0 and error message
Process Completed
Process Completed.</message>
</result>
</call>

Remark: I have pot the command in quot - for space 'DB Scripts'.

Is this issue should be resolved in latest version ?
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
Anonymous wrote:
Command '&quot;/home/Versions/4.0.2.0/DB Scripts/Infrastructure Utility/bin/SIS_CREATE_SH_FILES.sh&quot;'
failed with return code 0 and error message
Process Completed
Process Completed.

Please read documentation:
https://winscp.net/eng/docs/scriptcommand_call
_________________
Martin Prikryl
eliba3

Guest


I have run the following sh file:
call /home/4.0.2.1/DB Scripts/Oracle/SIS_Run_Script_On_DB.sh 2>&1

SIS_Run_Script_On_DB.sh contains:
sqlplus QA_APP/pas@Server @Install_oracle.sql >> SISLog.log

I got the following error:

<call>
<command value="&quot;/home/4.0.2.1/DB Scripts/Oracle/SIS_Run_Script_On_DB.sh&quot; 2&gt;&amp;1" />
<destination value="/home/4.0.2.1/DB Scripts/Oracle" />
<result success="false">
<message>Terminated by user.</message>
</result>
</call>

What the meaning of "Terminated by user." ?
( Maybe this is the disconnect of sqlplus from the server)
Remark: Actually the SIS_Run_Script_On_DB.sh file run ok but the issue is that I cannot continue running command after this error
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
eliba3 wrote:
I got the following error:

<call>
<command value="&quot;/home/4.0.2.1/DB Scripts/Oracle/SIS_Run_Script_On_DB.sh&quot; 2&gt;&amp;1" />
<destination value="/home/4.0.2.1/DB Scripts/Oracle" />
<result success="false">
<message>Terminated by user.</message>
</result>
</call>

Can you send me an email, so I can send you back a debug version of WinSCP to track the problem? Please include link back to this topic in your email. Also note in this topic that you have sent the email. Thanks.

You will find my address (if you log in) in my forum profile.
_________________
Martin Prikryl
lpunix

Guest


how did you use this "winscp" and include it in your projeect??
can you please give me a hint about this..
i've used "ChilkatDotNet2.dll" but got problem if any other file is included in the script which i'm running from my c# code....

I says that "FILE IS NOT FOUND IN THAT PATH"....
will you give some help for winscp... Idea Idea
martin
[View user's profile]
Site Admin
Joined: 2002-12-10
Posts: 25015
Location: Prague, Czechia
lpunix wrote:
how did you use this "winscp" and include it in your projeect??
can you please give me a hint about this..
i've used "ChilkatDotNet2.dll" but got problem if any other file is included in the script which i'm running from my c# code....

I says that "FILE IS NOT FOUND IN THAT PATH"....
will you give some help for winscp... Idea Idea

Nowdays, wou should use WinSCP .NET assembly, not the approach shown in this thread.
See https://winscp.net/eng/docs/library
_________________
Martin Prikryl
sheauyun
[View user's profile]

Joined: 2012-12-27
Posts: 12
prikryl wrote:
eliba3 wrote:
I got the following error:

<call>
<command value="&quot;/home/4.0.2.1/DB Scripts/Oracle/SIS_Run_Script_On_DB.sh&quot; 2&gt;&amp;1" />
<destination value="/home/4.0.2.1/DB Scripts/Oracle" />
<result success="false">
<message>Terminated by user.</message>
</result>
</call>

Can you send me an email, so I can send you back a debug version of WinSCP to track the problem? Please include link back to this topic in your email. Also note in this topic that you have sent the email. Thanks.

You will find my address (if you log in) in my forum profile.


How was this solve at the end? I think I face similar problem and have no idea to turn it around.
Advertisements

You can post new topics in this forum






Search Site

What is WinSCP?

It is award-winning SFTP client, SCP client, FTPS client and FTP client integrated into one software program for file transfer to FTP server or secure SFTP server. [More]

And it's free!

Donate

About donations

$9   $19   $49   $99

About donations

Recommend

WinSCP Privacy Policy

WinSCP License