DF output via SSH

I'm trying to understand what is happening.
The "setup".
System running OpenBSD 3.3
Connect to the system using PuTTy or with the SSH.COM SSH client, issue a DF command.
First line that comes back is:
Filesystem 1K-blocks Used Avail Capacity Mounted on

When I connect the the same OpenBSD box using an SSH client based on the wodSSH component and issueing an DF command I get as first line:
Filesystem 512-blocks Used Avail Capacity Mounted on

(in both cases using the same username/password and the same terminal type).

Note the difference is the BLOCK size.

(I know that doing a DF -K will give it in 1K blocks, but as said I'm trying to understand the difference).

(clients are running from a Windows 2000 station)

Doing the same towards a Red Hat 9 box will always give the 1K blocks.

dirk.

login both ways, run the following commands, and post the results:

ps -ft `tty`
type df
echo BLOCKSIZE = $BLOCKSIZE

Using PuTTy
ps -ft 'tty'
ps: illegal option -- f
usage: ps [-][acCehjklmrSTuvwx] [-O|o fmt] [-p pid] [-t tty] [-U user]
[-M core] [-N system] [-W swap]
ps [-L]
type df
df is an alias for 'df -k'
blocksize=$blocksize

Using the wodSSH component:
ps: illegal option -- f
usage: ps [-][acCehjklmrSTuvwx] [-O|o fmt] [-p pid] [-t tty] [-U user]
[-M core] [-N system] [-W swap]
ps [-L]
df is a tracked alias for /bin/df
blocksize=

dirk.

Try again, this time using backticks rathers than single quotes, upper case letters etc. If you can't type, cut and paste.

what are "backticks"?

I did copy paste the info....

dirk

Let me get this straight...

You carefully copied in
echo BLOCKSIZE = $BLOCKSIZE
and you got:
blocksize=$blocksize
for your answer? Whoa! At this point, I must bail out, your system is behaving in ways that I don't understand.

PuTTy:
$ ps -ft `tty`
ps: illegal option -- f
usage: ps [-][acCehjklmrSTuvwx] [-O|o fmt] [-p pid] [-t tty] [-U user]
[-M core] [-N system] [-W swap]
ps [-L]
$ type df
df is an alias for 'df -k'
$ echo BLOCKSIZE = $BLOCKSIZE
BLOCKSIZE =

wodSSH
$ ps -ft `tty`
ps: illegal option -- f
usage: ps [-][acCehjklmrSTuvwx] [-O|o fmt] [-p pid] [-t tty] [-U user]
[-M core] [-N system] [-W swap]
ps [-L]
$ type df
df is a tracked alias for /bin/df
$ echo BLOCKSIZE = $BLOCKSIZE
BLOCKSIZE =

dirk.

This looks much less strange. But I still don't know how to work your ps. I have access to a FreeBSD system and I was hoping that the user commands, at least, of OpenBSD would be close enough to work. The ps command that I gave you does work for me on FreeBSD. Try these two commands instead of the ps that I gave you:
ps
tty

Using PuTTy
$ ps
PID TT STAT TIME COMMAND
21215 p0 Is 0:00.02 -ksh (ksh)
7915 p0 R+ 0:00.00 ps
$ tty
/dev/ttyp0

Using the wodSSH client
ps
PID TT STAT TIME COMMAND
tty
not a tty

dirk

Here is what I know so far....

First, the PuTTY connection did things correctly. There you are logged in as as a real user. You have pty assigned so you can run tty type programs like vi. The login process also gave you a shell of -ksh. The leading minus sign tells the shell to run your login scripts. And somewhere in your login scripts (probably either .profile or .env) is an alias changing df to df -k.

Your wodSSH connection is a mess. No login scripts were run (explaining the difference you see with df). You're right that you can just
type:
alias df="df -k"
to fix that. And you can tidy up any other aliases or envirornment problems as well. But there is no reasonable way for you to allocate a pty for yourself. That is terrible... you can't run any full screen editors or other full screen programs. You're going to want to fix that.

Redhat reports df in k as a default...no need for your login scripts to succeed. But you may not have a pty when you connect to redhat via wodSSH.

wodSSH could have one of several possible problems. Neither of us knows your system well enough to tell which it is.

It would be sweet if you have the same problem with Redhat since I do know that well enough to track this down (well, maybe). So try to connect to Redhat from wodSSH and type "tty" If you get the message, "not a tty", then your connection to redhat is screwed up too. If so type:
ps -fp $PPID
and post the results of that. What we need to find out is the name of the parent of your shell. It might be sshd or it might be something else. Or if anyone you know can help you find out the name of the parent of your shell on OpenBSD that would work too.

I can only think of two ways for this happen, and the name of the parent will tell me which it is.

Towards RH9
tty gives
not tty

and the ps command gives
UID PID PPID C STIME TTY TIME CMD
dirk 9059 9057 0 19:46 ? 00:00:00 /usr/sbin/sshd

Testing towards another openbsd 3.3 host :
$tty
not a tty

UID PID PPID C STIME TTY TIME CMD
dirk 9059 9057 0 19:46 ? 00:00:00 /usr/sbin/sshd

Your wodSSH is either misconfigured or badly written, I don't know wodSSH, but I do know OpenSSH.

In terms of OpenSSH, if I type:
ssh somehost
I will establish a login session with that host. I will have a pty and a login shell and everything will be fine. But ssh can be used in a second way. I can type:
ssh somehost uname -a
and ssh will connect to somehost, run the command "uname -a" and return the results. This type of connection is not interactive in nature and it will not have a pty.

To reproduce your problem, I can type:
ssh somehost ksh -i
This will run an interactive ksh on the remote host. However there will be no pty, no login shell, etc. This is a useful option. ptys are a limited resource. If a box is up for a long time, you can run out of pty's. When this happens, I will connect in a manner similiar to this and free some up. But other than that, I would never use this technique.

So your wodSSH is not establishing a login session for you. Instead, it executing a remote command that is "ksh -i". You're on your own there. I never heard of wodSSH before.

hmm thanks for the info.

I just informated the writer of the wodssh component (it's a DLL/OCX component for Win32 machines).
Let's see what is reaction will be.

dirk.

Just got a reaction from him.

Seems that it's the way I use the component that causes this behaviour.

There is a simple way of sending a command directly after the login, and that by using the .command option of the component. This will NOT allocate a PTY and that's why the TTY command gave "this is not a TTY".
If however I don't use this .command option and send the commands I need to send after the login then it all works fine.

Basicly the component is working correct, it was me not using it correctly.
Just for the record the wodSSH component is working great and if you're looking for a good win32 component to do SSH then try it (www.weonlydo.com)

dirk.
btw thanks for all the help.