RDP терминал на Linux

Потребовалось создать дистрибутив для внутреннего пользования на предприятии, который работает как терминал, подключаясь к rdp сессии  Маздайного сервака. Чтобы не искушать судьбу на разные "извращения" и  красноглазие, я решил воспользоваться SUSE Studio. Плюс этого сервиса, что упращается сборка дистрибутива с нужными пакетами, оформлением и прочими утехами. С этой задачей я справился очень быстро, но вот далее дошло до программы которая будет подключаться к терминалу. Естественно выбор пал на rdesktop, но вот незадача в том, что нужно написать соответствующий скрипт который будет выкачивать из сети конфиги, парсить их в  соответствии с IP-адресом и подключаться куда нужно и с определёнными параметрами. Ещё необходимо, чтобы скрипт реагировал на свои в локальной сити или при недоступности узла. Можно было использовать bash, но реализовывать нормальный парсинг на нём, это не айс и я решил использовать python. terminal.py

#!/usr/bin/python
#-*-coding:utf8-*-
#New Terminal programm for  Terminal OS.
import threading
import time
import os
import ConfigParser
import socket
import fcntl
import struct

ip="local.location.ru"
user="terminal"

config = ConfigParser.ConfigParser()
config.read('/home/'+user+'/terminal.cfg')
pingcount=(config.get('general', 'pingcount'))

download_mirror_config="http://local.location.ru/terminal.cfg"
download_config="http://192.168.2.7/terminal.cfg"

class PingProcess(threading.Thread):
    def ping(self):
        ping = os.system("ping -c "+pingcount+" "+ip)
        return ping

    def run(self):
        while True:
            if self.ping() == 0:
                os.system("killall qiv")
                dwld=os.system("wget -N --timeout 3 --tries 1 "+download_config+" -P /home/"+user+"/")
                if dwld != 0:
                    os.system("wget -N --timeout 3 --tries 1 "+download_mirror_config+" -P /home/"+user+"/")
                time.sleep(60)

            else:
                os.system("killall rdesktop")
                time.sleep(60)

class StartProcess(threading.Thread):
    def getIP(self,ifname='eth0'):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            ipaddr = socket.inet_ntoa(fcntl.ioctl(
            s.fileno(),
            0x8915,
            struct.pack('256s', ifname[:15])
            )[20:24])
            return ipaddr
        except:
            return "127.0.0.1"
    def run(self):
        once_commands=(config.get(self.getIP(), 'once_commands'))
        os.system(once_commands)
        while True:
            commands=(config.get(self.getIP(), 'commands'))
            os.system(commands)
            os.system("qiv -f /home/"+user+"/warrning.png")

ping = PingProcess()
ping.start()
process = StartProcess()
process.start()

terminal.cfg

[general]
pingcount=1

[127.0.0.1]
once_commands=''
commands=''

[192.168.27.128]
once_commands=''
commands=rdesktop -f -u username -p password -z -r comport:COM1=/dev/ttyS0 192.168.7.9

Программа для запуска script.sh

#!/bin/bash
wget -N --timeout 3 --tries 1 http://192.168.2.7/terminal.cfg
DWLD=$?
if [ "$DWLD" -ne "0" ]
then
wget -N --timeout 3 --tries 1 http://local.location.ru/terminal.cfg
else
terminal.py
fi

Теги: , , , ,

Дата: 14 ноября 2011

Автор: Аноним

Комментарии: 91

Комментарии: 91

  1. Wow cuz this is great work! Congrats and keep it up. https://datingsitesover.com/

  2. skyscanner flights cheap flights CTALWFY smartfares cheap flights cheap flights to hawaii [url=https://cheapticketsairlineworldwide.com/#]CTALWFY[/url] cheap flight tickets

  3. viagra tablets hong kong
    amoxicillin cream
    checkout european pharmacy tadalafil DIT pruMn

  4. cialis do need prescription
    amoxil price canada
    viagra cheapest price generic DIT pruMn

  5. when was hydroxychloroquine first used https://plaquenilx.com/# hcq 200

  6. hydroxchloroquine https://plaquenilx.com/# arthritis medication hydroxychloroquine

  7. augmentin tablet 500 mg
    augmentin 375mg
    buy amoxicillin nz DIT pruMn

  8. amoxicillin drugstore
    amoxicillin 875 cost
    buy augmentin 500mg DIT pruMn

  9. amoxicillin 125 mg price
    augmentin 675 mg
    amoxicillin tablets india DIT pruMn

  10. chloroquine plaquenil https://plaquenilx.com/# hydroxy chloroquine

Оставить комментарий

*

Комментарий:

Ваш e-mail не будет опубликован.
Обязательные поля помечены *

Разрешенные HTML теги:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>