Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Okt 2006

Kan man få in env i cron?

Det känns som en trivial sak men med cron verkar inget trivialt.

På min RPi skulle jag automatisk vilja upptäcka om det finns en SSH connection till den. Min tanke var att ha ett cronjob som kollar om SSH_CONNECTION är satt. Problemet blir då att SSH_CONNECTION inte finns tillgänglig för cron och jag kanske missar något självklart här men jag ser inte hur cron skulle få tillgång till den.

Behöver jag leta ett annat angreppssätt för att lösa det?

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Okt 2007

SSH_CONNECTION är väl endast satt i den faktiska ssh-sessionen? Bättre är nog att övervaka loggfilen där det skrivs att en ssh-anslutning påbörjats. Vilken det är får du kolla upp, då det beror på vilken dist du kör.

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Okt 2006
Skrivet av ulf5:

SSH_CONNECTION är väl endast satt i den faktiska ssh-sessionen? Bättre är nog att övervaka loggfilen där det skrivs att en ssh-anslutning påbörjats. Vilken det är får du kolla upp, då det beror på vilken dist du kör.

Intressant tips. Just nu är min applikation väldigt enkel. Jag vill tända en LED när det finns en ssh-session så jag har för tillfället löst det i .bashrc och .bash_logout med kommandon för att tända och släcka. Nackdelen då är att det kommer fortsätta vara tänt om anslutningen bara bryts och därför vill jag ha något som mer kontinuerligt övervakar. Parsa loggfilen kan ju vara möjligt men jag tänker att det kan vara ganska tungt om man vill göra det ofta och loggfilen blir stor?

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Mar 2002

Du skulle kunna kolla om det finns någon aktiv nätverksanslutning mot port 22 med programmet netstat.

netstat -nt | grep ESTABLISHED | sed 's/ \+/ /g' | cut -d" " -f4 | grep :22 >/dev/null if [[ "$?" == "0" ]]; then echo "SSH connection detected" fi

The difference between stupidity and genius - the latter has limits

Trädvy Permalänk
Medlem
Plats
stockholm
Registrerad
Okt 2007

Du kan göra tail -f loggfilen.log | grep sshd | ditt_program så får du in en rad vid anslutning, eller iaf när något händer med ssh-servern. Du kan nog själv hitta på bättre grejer att grepa efter så du bara får ut de rader du önskar.