|
Betriebssysteme Linux, Debian, Suse und was es sonst noch so gibt; hier werden alle allgemeinen Fragen beantwortet |
|
Themen-Optionen | Ansicht |
04.05.2011, 18:31 | #1 |
Ausbilder Schmidt
Registriert seit: 30.10.2008
Ort: Essen (Ruhr) Ruhrpott4Ever :D
Alter: 36
Beitr?ge: 2.665
Abgegebene Danke: 107
Erhielt 1.644 Danke für 154 Beiträge
Downloads: 43
Uploads: 1 Nachrichten: 3942 Renommee-Modifikator:
10 |
UseNet Autoposter
Um von Linux irgendetwas ins UseNet zu posten braucht man immer eine Reihe von Software für die es keine GUI gibt oder man nutzt Windows Programme mittels wine.
Da ich wie bestimmt einige andere auch einen Linux Server habe sowie einen UseNet Account (und da hin und wieder auch mal was uppe) Bisher musste ich immer auf Windows Tools Zurückgreifen (WinRar, Quickpar, Yenc PP) für Linux gibt es diese Tools als Kommandozeilenversion jedoch ohne grafische GUI. Da das ganze auch Ziemlich langwierig ist (Rar Archive, Par2 Dateien) muss man immer drauf achten ob das ganze schon fertig ist Um das ganze zu automatisieren hab ich in den letzten Tagen ein Shellscript zusammengeschustert. Musste zwar Stundenlang Google massakrieren aber gut ding braucht Weile Zum Anfang braucht man etwas Software Debian/Ubuntu mit root Rechten Code:
apt-get update && apt-get install rar par2 newspost 32 Bit Code:
wget http://nl.archive.ubuntu.com/ubuntu/pool/universe/n/newspost/newspost_2.1.1-4_i386.deb dpkg -i newspost_2.1.1-4_i386.deb Code:
wget http://nl.archive.ubuntu.com/ubuntu/pool/universe/n/newspost/newspost_2.1.1-4_amd64.deb dpkg -i newspost_2.1.1-4_amd64.deb und nun zum Script Code:
#Defaultparameter # NNTP Daten NNTP_User="" NNTP_Pass="" NNTP_Host="" NNTP_Port="119" #Emailadresse Email="" Name="" #Verzeichnisse TMP_Folder="/home/uploads/" File=$PWD #Sonstiges Delete_after=true Autopost=true Newsgroup="alt.binaries.mom" NFO=false Part_Size="10m" Par2_Size="10" Block_Size="384000" Subject="Kein Betreff" echo "UseNet Autoposter V1.2 by Zero111:" #Usage Usage=" $0 [args] Alle Werte sind optional. Bei weglassen werden die im Script gesetzten Standartwerte genommen --help / --? Zeigt diese Hilfeseite an --File=[] Datei/Verzeichnis das gepostet werden soll --Output=[] Dateisuffix des Archivs --Newsgroup=[] Newsgroup in der gepostet werden soll --NFO=[] Pfad und Dateiname der NFO --NNTP-Host=[] Adresse des NNTP Server --NNTP-User=[] NNTP Login Name --NNTP-Pass=[] NNTP Passwort --NNTP-Port=[] NNTP Port --Email=[] Absender Email --Name=[] Ihr Name --Subject=[] Betreff/Titel --no-delete-TMP Verhindert das Löschen der Temporär angelegten Daten --no-autopost Verhindert das Autoposten --no-create-rar Keine Rar Dateien erstellen --no-create-par Keine Par2 Dateien erstellen --TMP-Folder=[] Setzen eines TMP Verzeichnis --Part-Size=[] Größe der Rar Archive --Par2-Size=[] Größe der Wiederherstellungsdaten in % --Block-Size=[] Par2 Blockgröße" #Parameter verarbeiten if [ $# -ne 0 ]; then params="${*}" name=" " while test ${#name} -gt 0; do xstring=${params#* } name=${params%$xstring} name=${name% } if test ${#name} -gt 0; then param=$name else param=$params fi params=$xstring typeset -u bez bez=`echo "$param" | cut -d'=' -f 1` wert=`echo "$param" | cut -d'=' -f 2` case $bez in --HELP | --?) echo "$Usage" ; exit 1;; --FILE) File=$wert;; --OUTPUT) Output=$wert;; --NNTP-USER) NNTP_User=$wert;; --NNTP-PASS) NNTP_Pass=$wert;; --NNTP-HOST) NNTP_Host=$wert;; --NNTP-PORT) NNTP_Port=$wert;; --EMAIL) Email=$wert;; --SUBJECT) Subject=$wert;; --NAME) Name=$wert;; --TMP-FOLDER) TMP_Folder=$wert;; --NO-DELETE-TMP) Delete_after=false;; --NO-AUTOPOST) Autopost=false;; --NEWSGROUP) Newsgroup=$wert;; --NFO) NFO=$wert;; --PART-SIZE) Part_Size=$wert;; --PAR2-SIZE) Par2_Size=$wert;; --BLOCK-SIZE) Block_Size=$wert;; --NO-CREATE-RAR) no_rar=true;; --NO-CREATE-PAR) no_par=true;; *) echo "Unbekannter Parameter $bez Benutze $0 --help für die Hilfe"; exit 1;; esac done fi echo "Verarbeite Daten..." echo "Scanne $File ..." echo -n "Vorhanden und Leserecht: " if [ -r $File ]; then echo "OK" else echo "FAIL"; exit -1 fi echo -n "Dateityp: " if [ -d $File ]; then file_isdir=true count=`du -a $File | wc -l` echo "Verzeichnis ($count Elemente)" else file_isdir=false echo "Datei" fi echo -n "Prüfe ob TMP Verzeichnis existiert und beschreibar ist: " if [ -d $TMP_Folder -a -w $TMP_Folder ]; then echo "OK" else echo "FAIL"; exit -1 fi echo -n "Prüfe NFO: " if [ -f $NFO ]; then NFO_OK=true echo "OK" else NFO_OK=false echo "Keine NFO gefunden, keine angebeben oder keine Leserechte" fi echo -n "Verarbeite Archivsuffix: " if [ -n "$Output" ]; then echo "Verwende angegebene Archivsuffix: $Output" else Output=`basename $File` echo "Kein Suffix angegeben. Verwende $Output" fi echo "Alles Okay" if [ "$NFO_OK" = "true" ]; then echo -n "Kopiere angegebene NFO... " CP $NFO $TMP_Folder if [ $? -ne 0 ]; then echo "FAIL" echo "Fatal Error: Die NFO konnte nicht kopiert werden" exit 1 else echo "OK" fi fi if [ "$no_rar" != "true" ]; then echo -n "Erstelle Rar Archiv... " rar a $TMP_Folder$Output.rar -v$Part_Size -m0 $File -inul -r if [ $? -ne 0 ]; then echo "FAIL" echo "Fatal Error: Beim Erstellen des Archives ist ein Fehler aufgetreten" exit 1 else echo "OK" fi else echo -n "Kopiere Daten... " if ($file_isdir == "true"); then CP --no-clobber $File* $TMP_Folder else CP --no-clobber $File $TMP_Folder fi if [ $? -ne 0 ]; then echo "FAIL" echo "Fatal Error: Fehler beim Kopieren der Daten" exit 1 else echo "OK" fi fi if [ "$no_par" != "true" ]; then echo -n "Erstelle Par2 Wiederherstellungsdateien... (Kann was dauern) " par2create -q -q -s$Block_Size -r$Par2_Size $TMP_Folder* if [ $? -ne 0 ]; then echo "FAIL" echo "Fatal Error: Beim Erstellen der Wiederherstellungsdateien ist ein Fehler aufgetreten" exit 1 else echo "OK" fi fi if [ "$Autopost" != "true" ]; then echo "Bereit zum Upload." echo -n "Upload starten? " typeset -u answer read answer case $answer in JA | J | YES | Y) Autopost=true;; NEIN | N | NO | *) Autopost=false;Delete_after=false;; esac fi if [ "$Autopost" = "true" ]; then echo "Beginne Upload ..." newspost -i $NNTP_Host -u $NNTP_User -p $NNTP_Pass -z $NNTP_Port -c $Output.sfv -f $Email -n $Newsgroup -F $Name -y -s $Subject $TMP_Folder* if [ $? -ne 0 ]; then echo "FAIL" echo "Fatal Error: Beim Posten der Daten ist ein Fehler aufgetreten" exit 1 else echo "Upload OK" fi fi if [ "$Delete_after" != "true" ]; then echo "Vorgang erfolgreich abgeschlossen" echo -n "Temporäre Dateien entfernen? " typeset -u answer read answer case $answer in JA | J | YES | Y) Delete_after=true;; NEIN | N | NO | *) Delete_after=false;; esac fi if [ "$Delete_after" = "true" ]; then echo -n "Lösche Temporäre Daten ..." rm $TMP_Folder* if [ $? -ne 0 ]; then echo "FAIL" echo "Fatal Error: Beim Löschen der Daten ist ein Fehler aufgetreten" exit 1 else echo "OK" fi fi echo "Alles Fertig" Das Script mittels chmod 755 ausfürbar machen Wer das Script global verfügbar haben will kann es einfach in Verzeichnis /usr/bin kopieren/verschieben Wenn man korrekte Defaultwerte gesetzt reicht einfach ein Code:
autopost #ihr Scriptname Code:
autopost --help //Edit Da der Parser hier immer das Script zerhackt ist die Datei im Anhang hochgeladen
__________________
Ge?ndert von Zero111 (04.05.2011 um 18:39 Uhr) |
Folgende 9 Benutzer sagen Danke zu Zero111 für den nützlichen Beitrag: | $iMpLy (04.05.2011), D@rk-€vil™ (04.05.2011), DoLo (05.05.2011), gotthummer (05.05.2011), Pikeman (19.07.2012), Schwamm (05.05.2011), sixtyseven (05.05.2011), synadari (25.12.2011), Thunder™ (04.05.2011) |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, G?ste: 1) | |
|
|