Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server > Metin2 PServer Guides & Strategies
You last visited: Today at 18:15

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[HOWTO] Automatisch entbannen per Cronjob

Discussion on [HOWTO] Automatisch entbannen per Cronjob within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old   #1

 
Hanashi's Avatar
 
elite*gold: 13
Join Date: Jun 2008
Posts: 1,115
Received Thanks: 2,226
[HOWTO] Automatisch entbannen per Cronjob

Hallo Leute,

ihr möchtet bestimmt manchmal User bannen, allerdings sollen diese nicht permanent, sondern nur für eine bestimmt Zeit gebannt werden, dies ist eigentlich ganz einfach und ich werde es in diesen Tutorial erklären. Ich hoffe mal so etwas gab es noch nicht.

Als erstes führt ihr folgenden Query in eurer Datenbank 'account' aus:
Code:
ALTER TABLE `account` ADD `baned` VARCHAR(50) NULL DEFAULT NULL AFTER `status`;
ALTER TABLE `account` ADD `bantime` INT(10) NULL DEFAULT NULL AFTER `status`;
ALTER TABLE `account` ADD `banlength` ENUM( 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'YEAR', 'PERM' ) NULL DEFAULT NULL AFTER `status`;
Damit werden 3 neue Felder in der Tabelle 'account' erstellt, diese Spalten lauten: baned, bantime und banlength. Diese Spalten zeigen, wie lange der Account gebannt ist, standardmäßig sind alle auf NULL gesetzt.

Nun loggt ihr euch mit einem SSH-Client (z.B. Putty) auf euren Server ein, auf dem auch die Datenbank ist. Ich habe das in meinem Beispiel mit dem Benutzer root gemacht. Ihr geht nun in das Stammverzeichnis eureres accounts mit
Code:
cd
oder
Code:
cd /root
Erstellt hier nun eine neue Datei namens unban.sh, dies macht ihr mit folgenden Befehl:
Code:
touch unban.sh
Diese Datei müsst ihr nun bearbeiten, unter FreeBSD macht ihr das mit:
Code:
ee unban.sh
unter Debian oder Ubuntu mit:
Code:
vi unban.sh
Wenn ihr Ubuntu verwendet könnt ihr folgenden Code direkt reinschreiben, bei Debian oder Ubuntu müsst ihr vorher die Taste "i" drücken.

So wie gesagt diesen Code schreibt ihr in die Datei:
Code:
#!/bin/bash
BENUTZER=dbuser
PASSWORT="dbpw"
/usr/local/bin/mysql -p account -u $BENUTZER --password=$PASSWORT -D account --execute="UPDATE account SET status='OK' WHERE status != 'OK' AND (banlength='SECOND' AND DATE_SUB(NOW(), INTERVAL bantime SECOND) > baned OR banlength='MINUTE' AND DATE_SUB(NOW(), INTERVAL bantime MINUTE) > baned OR banlength='HOUR' AND DATE_SUB(NOW(), INTERVAL bantime HOUR) > baned OR banlength='DAY' AND DATE_SUB(NOW(), INTERVAL bantime DAY) > baned OR banlength='WEEK' AND DATE_SUB(NOW(), INTERVAL bantime WEEK) > baned OR banlength='MONTH' AND DATE_SUB(NOW(), INTERVAL bantime MONTH) > baned OR banlength='YEAR' AND DATE_SUB(NOW(), INTERVAL bantime YEAR) > baned);\g \q"
(Unter Debian bzw. Ubuntu heißt es nicht /usr/local/bin/mysql sondern /usr/bin/mysql)

Ersetzt dbuser mit euren Datenbankbenutzer und dbpw mit euren Datenbankpasswort, lasst aber das Passwort in Anführungszeichen, dies ist vor allem wichtig wenn ihr Leerzeichen im Passwort habt.

Nun müsste ihr die Datei noch speichern, unter FreeBSD macht ihr das mit ESC -> leave editor -> save changes, unter einen System wie Debian oder Ubuntu drückt ihr ESC und gebt dann das ein:
Code:
:wq
und drückt Enter.

So nun müsst ihr euren System nur noch sagen, dass die Datei jede Minute einmal ausgeführt werden soll. Dazu kommen wir jetzt.

Gebt in eurem SSH-Programm folgendes ein:
Code:
crontab -e
So nun bekommt ihr einen Editor, hier drückt ihr "i" für INSERT und gebt folgenden Code ein:
Code:
* * * * *	sh /root/unban.sh
Nun drückt ihr ESC und gebt
Code:
:wq
ein, nun müsstet ihr folgende Meldung sehen:
Code:
crontab: installing new crontab
So jetzt werden die Accounts automatisch entbannt, allerdings wisst ihr noch nicht mit welchem Query ihr einen Account bannen müsst, dies ist auch ganz einfach mit diesem Query:
Code:
UPDATE account SET status='BLOCK', baned=NOW(), bantime='2', banlength='WEEK' WHERE login='hanashi';
Nun wird der account für zwei Wochen gebannt, ihr könnt statt WEEK auch folgendes verwenden:
Code:
SECOND = x Sekunden bannen
MINUTE = x Minuten bannen
HOUR = x Stunden bannen
DAY = x Tage bannen
WEEK = x Wochen bannen
MONTH = x Monate bannen
YEAR = x Jahre
PERM = Permanent bannen
Ich wünsche euch viel Spaß damit und hoffe es gab so etwas noch nicht.

MfG Hanashi

Edit: Der entsprechende PHP-Code:
PHP Code:
<?php

mysql_connect
("host""dbuser""dbpasswort");

if (isset(
$_POST["ban"])) {
    
$error false;
    
$errortext "";
    
    
$login mysql_real_escape_string($_POST["login"]);
    
$dauer mysql_real_escape_string($_POST["dauer"]);
    
$length mysql_real_escape_string($_POST["length"]);
    
    
$query mysql_query("SELECT DISTINCT a.id, a.login, a.status, p.name FROM account.account a LEFT JOIN player.player p ON p.account_id=a.id WHERE a.login='".$login."' OR p.name='".$login."' ORDER BY a.id DESC LIMIT 1") or die(mysql_error());
    
$row mysql_fetch_assoc($query);
    
    if (
mysql_num_rows($query) == 0) {
        
$errortext .= "Der Benutzer existiert nicht!<br>";
        
$error true;
    }
    
    if (
$row["status"] != "OK") {
        
$errortext .= "Der Benutzer wurde bereits gebannt!<br>";
        
$error true;
    }
    
    if (
$error == false) {
        
$query "UPDATE account.account SET status='BLOCK', baned=NOW(), bantime='".$dauer."', banlength='".$length."' WHERE id='".$row["id"]."'";
        if (
mysql_query($query)) {
            
$errortext "Der Benutzer wurde nun gebannt!<br>";
        } else {
            
$errortext "Der Benutzer wurde konnte nicht gebannt werden!<br>";
        }
    }
}

?>
<center>
    <?php
    
if (isset($errortext)) {
        echo 
$errortext."<br>";
    }
    
?>
    <form action="ban.php" method="post">
        Login- oder Charaktername:<br />
        <input type="text" name="login" value="<?php echo $_POST["ban"] ? $_POST["login"] : "" ?>" />
        
        <br /><br />
        
        Dauer:<br />
        <input type="text" name="dauer" size="5" value="<?php echo $_POST["ban"] ? $_POST["dauer"] : "" ?>" />
        
        <select name="length">
            <option value="SECOND">Sekunde/n</option>
            <option value="MINUTE">Minute/n</option>
            <option value="HOUR">Stunde/n</option>
            <option value="DAY">Tag/e</option>
            <option value="WEEK">Woche/n</option>
            <option value="MONTH">Monat/e</option>
            <option value="YEAR">Jahr/e</option>
            <option value="PERM">Permanent</option>
        </select>
        
        <br /><br />
        
        <input type="submit" name="ban" value="Bannen!" />
    </form>
</center>
Hanashi is offline  
Thanks
52 Users
Old 11/17/2010, 16:22   #2
 
elite*gold: 255
Join Date: Jan 2010
Posts: 2,067
Received Thanks: 756
Nice!
.Zander is offline  
Old 11/17/2010, 16:24   #3

 
Avulsed's Avatar
 
elite*gold: 90
Join Date: Apr 2010
Posts: 1,887
Received Thanks: 1,793
Danke,

Sowas ist sehr hilfreich
Avulsed is offline  
Old 11/17/2010, 16:24   #4
 
elite*gold: 0
Join Date: Jan 2010
Posts: 347
Received Thanks: 56
richtig nice Thx
christhebig is offline  
Old 11/17/2010, 16:25   #5
 
.Namenslos's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 1,637
Received Thanks: 1,254
Oh my! Hanashi @ MT2 Section! Its awesome :'D.

Is sehr nice geworden (;

LG .Namenslos
.Namenslos is offline  
Thanks
1 User
Old 11/17/2010, 16:25   #6
 
.BraiiiN™'s Avatar
 
elite*gold: 1
Join Date: Oct 2010
Posts: 106
Received Thanks: 25
THX!
.BraiiiN™ is offline  
Old 11/17/2010, 16:25   #7
 
elite*gold: LOCKED
Join Date: Oct 2010
Posts: 341
Received Thanks: 50
nice (=°.^=)
Swyr is offline  
Old 11/17/2010, 16:28   #8

 
Hanashi's Avatar
 
elite*gold: 13
Join Date: Jun 2008
Posts: 1,115
Received Thanks: 2,226
Ganz vergessen unter Ubuntu bzw. Debian heißt es nicht /usr/local/bin/mysql sondern /usr/bin/mysql
Hanashi is offline  
Thanks
2 Users
Old 11/17/2010, 16:35   #9
 
elite*gold: LOCKED
Join Date: Oct 2010
Posts: 341
Received Thanks: 50
/local/ hast du vergessen
Swyr is offline  
Old 11/17/2010, 16:36   #10
 
Kallisson's Avatar
 
elite*gold: 20
Join Date: Nov 2007
Posts: 770
Received Thanks: 198
Sehr gut. Vielen Dank
Kallisson is offline  
Old 11/17/2010, 16:36   #11

 
Hanashi's Avatar
 
elite*gold: 13
Join Date: Jun 2008
Posts: 1,115
Received Thanks: 2,226
Quote:
Originally Posted by Swyr View Post
/local/ hast du vergessen
Nein bei Ubuntu bzw. Debian ist es ohne /local/!
Hanashi is offline  
Old 11/17/2010, 16:44   #12
 
elite*gold: 145
The Black Market: 191/0/0
Join Date: Oct 2010
Posts: 9,802
Received Thanks: 3,120
Hanashi ftw *-*
Mαhdin is offline  
Old 11/17/2010, 17:04   #13
 
elite*gold: 0
Join Date: Nov 2010
Posts: 165
Received Thanks: 313
echt nice. thx.
.Tiburion' is offline  
Thanks
1 User
Old 11/17/2010, 17:08   #14
 
°RapLexx°'s Avatar
 
elite*gold: 680
Join Date: Apr 2010
Posts: 1,187
Received Thanks: 891
Danke dir wird vielen helfen.

GreeeZ
Sazh
°RapLexx° is offline  
Old 11/17/2010, 17:15   #15
 
elite*gold: 255
Join Date: Jan 2010
Posts: 2,067
Received Thanks: 756
Wennste jetzt noch ein autobackup pub machst, welches die backups auf einen anderen Server zieht, isses perfekt!
.Zander is offline  
Reply


Similar Threads Similar Threads
entbannen
08/04/2010 - WarRock - 14 Replies
hey habe ne frage mein konto wurde gesperrt gibt es ne möglichkeit es entsperren zu lassen?
ENTBANNEN=)?
06/02/2009 - Metin2 Private Server - 7 Replies
also ich denke ich habe mich entbannt komme aber noch nicht rein dauert das ein bisschen bis ich entbannt werde? Mfg Sanira Kingmt2 Naomi
[Entbannen]Biete Hilfe beim Entbannen VIPMT2
04/30/2009 - Metin2 Private Server - 2 Replies
Wie Der Name schon sagt gebe ich euch Hilfe beim Entbannen in VIPMT2 einfach nur eine PN schicken mit --> ID & PW ThX ist nicht erwünscht aber man darf geben :)
Entbannen?
08/18/2008 - Metin2 - 9 Replies
Gibts ne möglichkeit das man enbannt wird?wurde 6 monate gebannt un ich halt nimmer aus un es nicht ma jetzt ne woche her
Acc entbannen
04/08/2008 - Metin2 - 1 Replies
Hallo leute wes wer von euch wie man nen acc ENTbannen kann?



All times are GMT +1. The time now is 18:15.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.