Getting a command to run on ssh/cli login ONLY
I've got a FC8 machine that I sit and use at the console a lot, but also access remotely via ssh. Also sometimes I ssh in as another account and then su to my own account.
There's a particular command I'd like to run ONLY if I ssh into the machine as myself, or su to myself, but NOT if I sit down and have a graphical session at the console. I'm not sure where I'd put it so it will run only on non-GUI (ssh) login or via su. Can anybody give me an answer? - Van |
You can detect if you are connecting via SSH by looking for the SSH_CLIENT environmental variable in your bash startup scripts.
Checking for the display environmental variable might work for telling a GUI/Console login apart, although I am not sure of that. Running env will list all variables that are currently set, so you can compare the different login types and find variables that can tell them apart. |
Yes yes YES!!!
This is just what I was looking for. I never have to explicitly deal with my environment variables so I'd never have thought of that. After running 'env' I realized GDMSESSION will only exist if I have logged in at the console. If I ssh in as myself or am logged in as another account (even in the GUI), then 'su - van' to myself, GDMSESSION will be undefined. That's what I need to know! Thank you. - Van |
another way is to do
ssh -t <machine name> "command; <your shell, e.g. bash>" the -t forces tty (roughly i.e. text terminal) which allows bash to work I think this is more flexible b/c you don't have to have different local users to run different commands, and the server doesn't have to know about those users. |
Not quite better for my uses, but I see other scenarios where I could use it. Another eye-opener. Thanks!
|
All times are GMT -5. The time now is 08:13 AM. |