File x2gopgwrapper_local of Package x2go
#!/bin/su postgres
cd ~
#use only with sudo !!
UNAME=$SUDO_USER
case "$1" in
getdisplays)
echo "select '|'||display||'|' from sessions;"|psql -t x2go_sessions
;;
getports)
echo "select '|'||port||'|' from used_ports;"|psql -t x2go_sessions
;;
getservers)
echo "select server,count(*) from sessions where status != 'F' group by server;"|psql -t x2go_sessions
;;
listsessions)
echo "select agent_pid, session_id, display, server, status,\
to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
to_char(now()-init_time,'SSSS'),fs_port from sessions \
where status !='F' and server='$2' and uname='$UNAME' order by status desc;"|psql -t x2go_sessions
;;
listsessions_all)
echo "select agent_pid, session_id, display, server, status,\
to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
to_char(now()-init_time,'SSSS'),fs_port from sessions \
where status !='F' and uname='$UNAME' order by status desc;"|psql -t x2go_sessions
;;
listsessionsroot)
if [ "$UNAME" != "root" ]
then
echo "$UNAME, You have not permission to do this job!"
exit
fi
echo "select agent_pid, session_id, display, server, status,\
to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
to_char(now()-init_time,'SSSS'),fs_port from sessions \
where server='$2' order by status desc;"|psql -t x2go_sessions
;;
listsessionsroot_all)
if [ "$UNAME" != "root" ]
then
echo "$UNAME, You have not permission to do this job!"
exit
fi
echo "select agent_pid, session_id, display, server, status,\
to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
to_char(now()-init_time,'SSSS'),fs_port from sessions \
order by status desc;"|psql -t x2go_sessions
;;
listsusp)
if [ "$UNAME" != "root" ]
then
echo "$UNAME, You have not permission to do this job!"
exit
fi
echo "select session_id, display, uname, server,extract( day from now()-last_time)*24*60+extract(hour from now()-last_time)*60+extract(minute from now()-last_time)\
from sessions where server='$2' and status='S';"|psql -t x2go_sessions
;;
listallrunning)
if [ "$UNAME" != "root" ]
then
echo "$UNAME, You have not permission to do this job!"
exit
fi
echo "select agent_pid, session_id, display, server, status,\
to_char(init_time,'DD.MM.YY*HH24:MI:SS'),cookie,client,gr_port,\
sound_port,to_char(last_time,'DD.MM.YY*HH24:MI:SS'),uname,\
to_char(now()-init_time,'SSSS'),fs_port from sessions \
where status='R';"|psql -t x2go_sessions
;;
listmails)
if [ "$UNAME" != "root" ]
then
echo "$UNAME, You have not permission to do this job!"
exit
fi
echo "select user_messages.mess_id,sessions.session_id,\
sessions.uname,sessions.display from sessions,user_messages,\
messages where sessions.uname=user_messages.uname and sessions.status!='F'\
and messages.mess_id=user_messages.mess_id and sessions.server='$2';"|psql -t x2go_sessions
;;
getmail)
if [ "$UNAME" != "root" ]
then
echo "$UNAME, You have not permission to do this job!"
exit
fi
echo "select message from messages where mess_id='$2';"|psql -t x2go_sessions
;;
rmmail)
if [ "$UNAME" != "root" ]
then
echo "$UNAME, You have not permission to do this job!"
exit
fi
echo "delete from user_messages where mess_id='$2' and uname='$3';"|psql -t x2go_sessions
;;
rmsessionsroot)
if [ "$UNAME" != "root" ]
then
echo "$UNAME, You have not permission to do this job!"
exit
fi
echo "delete from sessions \
where session_id='$2';"|psql -t x2go_sessions
;;
getagent)
echo "select agent_pid from sessions where session_id = '$2';"|psql -t x2go_sessions
;;
getdisplay)
echo "select display from sessions where session_id = '$2';"|psql -t x2go_sessions
;;
changestatus)
echo "update sessions set last_time=now(),status='$2' where session_id = '$3' and uname='$UNAME';"|psql -t x2go_sessions
;;
resume)
echo "update sessions set last_time=now(),status='R',client='$2' where session_id = '$3' and uname='$UNAME';"|psql -t x2go_sessions
;;
insertsession)
echo "insert into sessions (display,server,uname,session_id) values \
('$2','$3','$UNAME','$4');"|psql x2go_sessions
;;
createsession)
echo "update sessions set status='R',last_time=now(),cookie='$2',agent_pid='$3',\
client='$4',gr_port='$5',sound_port='$6',fs_port='$7' where session_id='$8' and uname='$UNAME';"|psql x2go_sessions
;;
insertport)
echo "insert into used_ports (server,session_id,port) values \
('$2','$3','$4');"|psql x2go_sessions
;;
insertmount)
echo "insert into mounts (session_id,path,client) values \
('$2','$3','$4');"|psql x2go_sessions
;;
deletemount)
echo "delete from mounts where session_id='$2' and path='$3';"|psql x2go_sessions
;;
getmounts)
echo "select client,path from mounts where session_id = '$2';"|psql -t x2go_sessions
;;
*)
echo "$1: wrong argument"
;;
esac