Oktober 6

Atlassian Jira unter Debian 9 installieren

MySQL-Server installieren und einrichten

apt-get install mysql-server

CREATE DATABASE jira;

ALTER DATABASE jira DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE USER ‚jira’@’127.0.0.1‘ IDENTIFIED BY ‚P@s$w07T‘;

GRANT ALL PRIVILEGES ON jira . * TO ‚jira’@’127.0.0.1‘;

Benötigte Software herunterladen

wget https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-7.12.1-x64.bin

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz

Software ausführbar machen und anschließend ausführen (Software nach Installation nicht starten)

chmod u+x atlassian-jira-software-7.12.1-x64.bin

./atlassian-jira-software-7.12.1-x64.bin

MySQl-Connector entpacken und verschieben

tar -xf mysql-connector-java-5.1.47.tar.gz

cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47* /opt/atlassian/jira/lib/

chmod u+x /opt/atlassian/jira/lib/mysql-connector-java-5.1.47*

Jira starten

/opt/atlassian/jira/bin/startup.sh

Dezember 25

TeamSpeak 3 Server unter Linux (Debian 9) dem Autostart hinzufügen

Unter /etc/systemd/system/ die Datei rc-local.service mit nachfolgendem Inhalt anlegen, falls diese nicht bereits existiert

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target

Unter /etc/ die Datei rc.local mit nachfolgendem Inhalt anlegen

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

./pfad_teamspeakserver/ts3server_startscript.sh start

exit 0

Noch die Berechtigungen anpassen

chmod +x /etc/rc.local
systemctl enable rc-local

Status des Dienstes systemctl status rc-local.service überprüfen

systemctl status rc-local.service

und gegebenenfalls starten und erneut den Status abfragen

systemctl start rc-local.service
systemctl status rc-local.service

Nun gilt es den Server neu zu starten und zu überprüfen, ob die Änderungen wirksam sind

Juli 22

TeamSpeak3 Musikbot installieren unter Debian9

apt-get install x11vnc xvfb libxcursor1 ca-certificates curl libglib2.0-0 nano bzip2 -y update-ca-certificates
https://www.sinusbot.com/dl/sinusbot-beta.tar.bz2
tar -xjf sinusbot-beta.tar.bz2
cp config.ini.dist config.ini
wget http://dl.4players.de/ts/releases/3.1.4/TeamSpeak3-Client-linux_amd64-3.1.4.run
chmod 755 TeamSpeak3-Client-linux_amd64-3.1.4.run
./TeamSpeak3-Client-linux_amd64-3.1.4.run
TS3Path = "/opt/sinusbot/TeamSpeak3-Client-linux_amd64/ts3client_linux_amd64"
cp plugin/libsoundbot_plugin.so /opt/sinusbot/TeamSpeak3-Client-linux_amd64/plugins
chmod 755 ts3bot

 

Juni 16

APC USV – Kapazität mit Python auslesen

Das nachfolgende Programm meldet sich auf der APC USV an und liest die aktuelle Kapazität aus:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
##############################################################
#                                                            #
# Python prototype which logs on to a APC USV and extracts   #
# the actual capacity of the USV                             #
#                                                            #
# original source code by Kloss Jan-Philip                   #
#                                                            #
# Python Version 2.7                                         #
#                                                            #
##############################################################

#imports 
import requests
import re
import sys
import subprocess
from optparse import OptionParser

#login credentials
values = {'login_username': 'apc',
          'login_password': 'apc'}

#subprogram
def getPage(ip):
    url='http://'+ip+'/Forms/login1'
    s=requests.session()
    s.get(url)
    r=s.post(url, data=values)
    sid_url= r.url
    searchstring='NMC/(.*)/home.htm'
    sid = re.search(searchstring, sid_url).groups(2)
    url2='http://'+ip+'/NMC/'+sid[0]+'/upstat.htm'
    t = s.get(url2)
    page=t.content
    return page

#main program
def main():
  usage = "usage: %prog [options]"
  parser = OptionParser(usage)
  parser.add_option("-i", "--ip", action="store", dest="ip", help="IP of host to check capacity of USV.")
  (options, args) = parser.parse_args()
  if options.ip is None:
    parser.print_help()
  try:
    ip = options.ip

    page=getPage(ip)
    for line in page.split('</tr>'):
      #Aktuelle Batteriekapazität
      if 'Capacity' in line:
        match = re.search('<td colspan="3">(.*?)&nbsp;%</td>',line)
        if match:
          capacity = match.group(1)
    print "capacity:"+str(capacity)
  except Exception, e:
    print e
if __name__ == '__main__':
  main()

Das Programm bzw. daraus hervorgehende Plugin für Cacti befindet sich unter Downloads.

Katgeorie:Allgemein | Hinterlasse einen Kommentar
Juni 15

Spigot unter Debian installieren

Zuerst muss Java 8 installiert werden:

Repositorie-Datei anlegen:

 nano /etc/apt/sources.list.d/java-8-debian.list

mit dem Inhalt:

deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main

Key hinzufügen:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886

Paketquellen aktualisieren und Java installieren:

apt-get update && apt-get install oracle-java8-installer

Bei der Installation die beiden Dialoge mit JA bestätigen.

Dann noch Github installieren:

apt-get install git-core

BuildTools herunterladen und ausführen:

wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastBuild/artifact/target/BuildTools.jar
java -jar BuildTools.jar

Spigot-Datei umbenennen:

mv spigot-1.11.2.jar spigot.jar

Startdatei anlegen

nano start.sh

mit dem Inhalt

#!/bin/sh

java -Xms512M -Xmx1G -jar spigot.jar

Startdatei ausführbar machen:

chmod +x start.sh

Startdatei ausführen:

./start.sh

 

 

Katgeorie:Allgemein | Hinterlasse einen Kommentar
März 3

Fritzbox 7430 auslesen mit Python – HTTP

#!/usr/bin/python
# -*- coding: utf-8 -*-
#
##############################################################
#                                                            #
# Python prototype which logs on to a Fritz AVM 7430 and     #
# extracts all important DSL-Information                     #
#                                                            #
# original source code by framp at linux-tips-and-tricks.de  #
#                                                            #
# modified by me, Kloss Jan-Philip                           #
#                                                            #
# Python Version 2.7                                         #
#                                                            #
##############################################################

import httplib
from xml.dom import minidom
import hashlib
import re
import sys

USER_AGENT="Mozilla/5.0 (U; Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0"

def getPage(server, sid, page, port):

    conn = httplib.HTTPConnection(server+':'+port)

    headers = { "Accept" : "application/xml",
        "Content-Type" : "text/plain",
        "User-Agent" : USER_AGENT}

    pageWithSid=page+"&sid="+sid
    conn.request("GET", pageWithSid, '', headers)
    response = conn.getresponse()
    data = response.read()
    if response.status != 200:
        print "%s %s" % (response.status, response.reason)
        print data
        sys.exit(0)
    else:
        return data

def loginToServer(server,password,port):

    conn = httplib.HTTPConnection(server+':'+port)

    headers = { "Accept" : "application/xml",
        "Content-Type" : "text/plain",
        "User-Agent" : USER_AGENT}

    initialPage='/login_sid.lua'
    conn.request("GET", initialPage, '', headers)
    response = conn.getresponse()
    data = response.read()
    if response.status != 200:
        print "%s %s" % (response.status, response.reason)
        print data
        sys.exit(0)
    else:
        theXml = minidom.parseString(data)
        sidInfo = theXml.getElementsByTagName('SID')
        sid=sidInfo[0].firstChild.data
        if sid == "0000000000000000":
            challengeInfo = theXml.getElementsByTagName('Challenge')
            challenge=challengeInfo[0].firstChild.data
            challenge_bf = (challenge + '-' + password).decode('iso-8859-1').encode('utf-16le')
            m = hashlib.md5()
            m.update(challenge_bf)
            response_bf = challenge + '-' + m.hexdigest().lower()
        else:
            return sid
        
    headers = { "Accept" : "text/html,application/xhtml+xml,application/xml",
        "Content-Type" : "application/x-www-form-urlencoded",
        "User-Agent" : USER_AGENT}

    loginPage="/login_sid.lua?&response=" + response_bf
    conn.request("GET", loginPage, '', headers)
    response = conn.getresponse()
    data = response.read()
    if response.status != 200:
        print "%s %s" % (response.status, response.reason)
        print data
        sys.exit(0)
    else:
        sid = re.search('<SID>(.*?)</SID>', data).group(1)
        if sid == "0000000000000000":
            print "ERROR - No SID received because of invalid password"
            sys.exit(0)
        return sid

server='IP'
password='passwort'
port='80'

sid=loginToServer(server,password, port)

if not sid:
    print "ERROR logging on"
    sys.exit(0)

page=getPage(server,sid,"/internet/dsl_stats_tab.lua?update=mainDiv",port)

for line in page.split('</tr>'):
    #DSLAM-Datenrate Max. Empfangsrate
    if 'DSLAM-Datenrate Max.' in line:
        match = re.search('.*"c3">(\d+)',line)
        if match:
            print "%s: %s" % ('DSLAM-Datenrate Max. Empfangsrate',match.group(1))
    #DSLAM-Datenrate Max. Senderichtung
    if 'DSLAM-Datenrate Max.' in line:
        match = re.search('.*"c4">(\d+)',line)
        if match:
            print "%s: %s" % ('DSLAM-Datenrate Max. Senderate',match.group(1))

    #DSLAM-Datenrate Min. Empfangsrate"
    if 'DSLAM-Datenrate Min.' in line:
        match = re.search('.*"c3">(\d+)',line)
        if match:
            print "%s: %s" % ('DSLAM-Datenrate Min. Empfangsrate',match.group(1))
    #DSLAM-Datenrate Min. Senderate
    if 'DSLAM-Datenrate Min.' in line:
        match = re.search('.*"c4">(\d+)',line)
        if match:
            print "%s: %s" % ('DSLAM-Datenrate Min. Senderate',match.group(1))

    #Leitungskapazität Empfangsrate
    if 'Leitungskapazität' in line:
        match = re.search('.*"c3">(\d+)',line)
        if match:
            print "%s: %s" % ('Leitungskapazität Empfangsrate',match.group(1))
    #Leitungskapazität Senderate
    if 'Leitungskapazität' in line:
        match = re.search('.*"c4">(\d+)',line)
        if match:
            print "%s: %s" % ('Leitungskapazität Senderate',match.group(1))

    #Aktuelle Empfangsdatenrate
    if 'Aktuelle Datenrate' in line:
        match = re.search('.*"c3">(\d+)',line)
        if match:
            print "%s: %s" % ('Aktuelle Empfangsdatenrate',match.group(1))
    #Aktuelle Sendedatenrate
    if 'Aktuelle Datenrate' in line:
        match = re.search('.*"c4">(\d+)',line)
        if match:
            print "%s: %s" % ('Aktuelle Sendedatenrate',match.group(1))

    #Empfangslatenz
    if 'Latenz' in line:
        match = re.search('.*"c3">(\d+)',line)
        if match:
            print "%s: %s" % ('Empfangslatenz',match.group(1))
    #Sendelatenz
    if 'Latenz' in line:
        match = re.search('.*"c4">(\d+)',line)
        if match:
            print "%s: %s" % ('Sendelatenz',match.group(1))

    #Empfangsleitungsdämpfung
    if 'Leitungsdämpfung' in line:
        match = re.search('.*"c3">(\d+)',line)
        if match:
            print "%s: %s" % ('Empfangsleitungsdaempfung',match.group(1))
    #Sendeleitungsdämpfung
    if 'Leitungsdämpfung' in line:
        match = re.search('.*"c4">(\d+)',line)
        if match:
            print "%s: %s" % ('Sendeleitungsdaempfung',match.group(1))

    #Fehlerrate FRITZ!Box
    if 'FRITZ!Box' in line:
        match = re.search('.*"c2">(\d+)',line)
        if match:
            print "%s: %s" % ('Sekunden mit Fehlern (ES)',match.group(1))
    #Fehlerrate FRITZ!Box
    if 'FRITZ!Box' in line:
        match = re.search('.*"c3">(\d+)',line)
        if match:
            print "%s: %s" % ('Sekunden mit vielen Fehlern (SES)',match.group(1))
    #Fehlerrate FRITZ!Box
    if 'FRITZ!Box' in line:
        match = re.search('.*"c4">(\d+)',line)
        if match:
            print "%s: %s" % ('Nicht behebbare Fehler (CRC) pro Sekunde',match.group(1))

    #Fehlerrate Vermittlungsstelle
    if 'Vermittlungsstelle' in line:
        match = re.search('.*"c2">(\d+)',line)
        if match:
            print "%s: %s" % ('Sekunden mit Fehlern (ES)',match.group(1))
    #Fehlerrate Vermittlungsstelle
    if 'Vermittlungsstelle' in line:
        match = re.search('.*"c3">(\d+)',line)
        if match:
            print "%s: %s" % ('Sekunden mit vielen Fehlern (SES)',match.group(1))
    #Fehlerrate Vermittlungsstelle
    if 'Vermittlungsstelle' in line:
        match = re.search('.*"c4">(\d+)',line)
        if match:
            print "%s: %s" % ('Nicht behebbare Fehler (CRC) pro Sekunde',match.group(1))

Das Programm bzw. daraus hervorgehende Plugins für Nagios und Cacti befinden sich unter Downloads.

Als Grundlage diente linux-tips-and-tricks.de.

 

Februar 22

VMware Workstation 10/11/12 Parallele Schnittstelle aktivieren/installieren

Ab VMware Workstation 10 wird bei der Installation der Treiber für die parallele Schnittstelle nicht mit installiert. Folgende Anleitung löst das Problem.

1.) vmparport.sys unter Downloads herunterladen und nach C:\Program Files (x86)\VMware\VMware Workstation\ kopieren
2.) „cmd” als Administrator ausführen und in den Pfad C:\Program Files (x86)\VMware\VMware Workstation\ wechseln
3.) Den nachfolgenden Befehl ausführen (leerzeichen sind zu beachten):

vnetlib.exe -- install vmparport
Katgeorie:Allgemein | Hinterlasse einen Kommentar
Februar 7

TeamSpeak 3 Server unter Linux (Debian) updaten

Der TeamSpeak-Server sollte vor dem Updaten gestoppt werden und die Links müssen vor dem Ausführen auf die neuste Version angepasst werden

#Backup
tar -cf backup.tar /pfad/teamspeakserver/

#Download neuste Version
wget http://dl.4players.de/ts/releases/3.0.13.6/teamspeak3-server_linux_amd64-3.0.13.6.tar.bz2

#Entpacken
tar -xf teamspeak3-server_linux_amd64-3.0.13.6.tar.bz2

#Dateien verschieben
cd teamspeak3-server_linux_amd64
cp -u -r doc /pfad/teamspeakserver
cp -u -r redist /pfad/teamspeakserver
cp -u -r serverquerydocs /pfad/teamspeakserver
cp -u -r sql /pfad/teamspeakserver
cp -u -r tsdns /pfad/teamspeakserver
cp -u libts3db_mariadb.so /pfad/teamspeakserver
cp -u libts3db_sqlite3.so /pfad/teamspeakserver
cp -u ts3server /pfad/teamspeakserver

#Aufraeumen
cd ..
rm -r teamspeak3-server_linux_amd64
rm teamspeak3-server_linux_amd64-3.0.13.6.tar.bz2

 

April 16

Minecraft Plugin – Daten aus Config.yml lesen

//Datenbankdaten aus Config holen
String dbip,dbport,dbname,dbuser,dbpw;
dbip=getConfig().getString("Settings.db-ip");
dbport=getConfig().getString("Settings.db-port");
dbname=getConfig().getString("Settings.db-name");
dbuser=getConfig().getString("Settings.db-user");
dbpw=getConfig().getString("Settings.db-pw");

//Datenbankverbindung aufbauen
MySQL.MySQLConnect(dbip, dbport, dbname, dbuser, dbpw);

//Wenn kein Datensatz angelegt ist
if(getConfig().getBoolean("Settings.db-default")){
  try{
    MySQL.DatensatzAnlegen();
  }
  catch(Exception e){
    System.out.println("[ProjectMinecraft]Die Config konnte nicht angelegt werden!");
  }
}
Katgeorie:Allgemein | Hinterlasse einen Kommentar