Configuration multi-eggdrops

From Base de connaissances eggdrops & TCL
Jump to: navigation, search

Préambule

Lorsque vous voulez faire fonctionner plusieurs eggdrops depuis la même machine, il ne sert à rien de compiler plusieurs eggdrops, c'est une erreur bien trop fréquente.

Il suffit d'avoir des fichiers de configuration avec des noms différents, et de lancer l'eggdrop normalement, en faisant ./eggdrop bot1.conf pour lancer bot1, et ./eggdrop bot2.conf pour bot2.

Les seules choses à respecter impérativement sont celles qui permettent différencier les eggdrops sur la machine:

  • le nom,
  • les ports utilisés,
  • le nommage des fichiers de log

Voici pourquoi et comment je me simplifie le travail avec la petite astuce suivante.

Astuce

En fait, j'utilise un fichier principal (eggdrop.conf) qui est appelé par les fichiers propres à chaque eggdrop (bot1.conf). Le fichier eggdrop.conf contient donc tout ce qui est générique (pour tous les eggdrops) avec quelques astuces pour le rendre "compatible" avec les différentes configurations que je pourrais avoir dans les fichiers appelants.

Sources

bot1.conf

#! /home/eggdrop/eggdrop
# Global infos

# username est le nom de l'eggdrop, il sert de référence.
set username "BotAMoi"

# uport est le port utilisateur
set uport 3300

# bport est la liste des ports "bots"
set bport { 4000 5000 5005 5010 5015 5020 5025 5030 5035 5040 5045 5050 5055 }

# Server info
set network "zeolia.net"
set servers {
	irc.zeolia.net:6665
	irc.zeolia.net:6665
	irc.zeolia.net:6666
	irc.zeolia.net:6667
	irc.zeolia.net:6668
	irc.zeolia.net:6669
	irc.zeolia.net:6670
}

# Appel du eggdrop.conf
source eggdrop.conf

# Ici je charge les scripts additionnels
# propre à l'eggdrop
set admin "CrazyCat <email: crazycat@email.org>"
# ce mot de passe est utilisé par le script initialization.tcl
set ns_pass "monpass"
source scripts/initialization.tcl

source scripts/bnmaster.tcl
source scripts/botnetstats.tcl

On peut constater que cet eggdrop utilisera plusieurs ports bot.

bot2.conf

#! /home/eggdrop/eggdrop
# Global infos

# username est le nom de l'eggdrop, il sert de référence.
set username "Bot2AMoi"

# uport est le port utilisateur
set uport 3305

# bport est la liste des ports "bots"
set bport 6000

# Server info
set network "zeolia.net"
set servers {
	irc.zeolia.net:6665
	irc.zeolia.net:6665
	irc.zeolia.net:6666
	irc.zeolia.net:6667
	irc.zeolia.net:6668
	irc.zeolia.net:6669
	irc.zeolia.net:6670
}

# Appel du eggdrop.conf
source eggdrop.conf

# Ici je charge les scripts additionnels
# propre à l'eggdrop
set admin "CrazyCat <email: crazycat@email.org>"
# ce mot de passe est utilisé par le script initialization.tcl
set ns_pass "monpass"
source scripts/initialization.tcl

source scripts/bnslave.tcl
source $username.scripts/jokes.tcl

Cet eggdrop utilisera le script jokes.tcl qui est dans un répertoire uniquement pour cet eggdrop: Bot2Amoi.scripts/.

eggdrop.conf

Vous noterez que beaucoup d'appels sont fait à $username, mais sinon le fichier ressemble beaucoup à celui d'origine.

set timezone "CET"
set offset "-1"
#set env(TZ) "$timezone $offset"
addlang "french"

#set my-hostname "virtual.host.com"
set my-ip "255.255.255.255"

##### LOG FILES #####
set max-logs 5
set max-logsize 1024
set quick-logs 0
set raw-log 0
logfile mco * "logs/$username.log"
# logfile jpk #eggdrops "logs/$username.eggdrops.log"
set log-time 1
set keep-all-logs 1
set logfile-suffix ".%Y%m%d"
set switch-logfiles-at 100
set quiet-save 1

##### CONSOLE #####
set console "mkcobxs"

##### FILES AND DIRECTORIES #####
set userfile "$username.user"
set pidfile "pid.$username"
set sort-users 0
set help-path "help/"
set text-path "text/"
set temp-path "/tmp"
set motd "text/motd"
set telnet-banner "text/banner"
set userfile-perm 0600

##### BOTNET/DCC/TELNET #####
set botnet-nick $username
listen $uport users

Ici, une petite modification pour initialiser les différents ports utilisés

foreach mybport $bport {
	listen $mybport bots
}
set remote-boots 2
set share-unlinks 1
set protect-telnet 0
set dcc-sanitycheck 1
set ident-timeout 5
set require-p 0
set open-telnets 0
set stealth-telnets 0
set use-telnet-banner 1
set connect-timeout 15
set dcc-flood-thr 3
set telnet-flood 5:60
set paranoid-telnet-flood 0
set resolve-timeout 15

##### MORE ADVANCED SETTINGS #####
#set nat-ip "127.0.0.1"
#set reserved-portrange 2010:2020
set ignore-time 15
set hourly-updates 00
set owner "CrazyCat"
set notify-newusers "$owner"
set default-flags "hp"
set whois-fields "url birthday"
set die-on-sighup 0
set die-on-sigterm 1
#unbind dcc n tcl *dcc:tcl
#unbind dcc n set *dcc:set
set must-be-owner 1
unbind dcc n simul *dcc:simul
set max-dcc 50
set allow-dk-cmds 1
set dupwait-timeout 5

##### MODULES #####
set mod-path "modules/"

#### DNS MODULE ####
loadmodule dns

#### CHANNELS MODULE ####
loadmodule channels
set chanfile "$username.chan"
set force-expire 0
set share-greet 1
set use-info 1
set global-flood-chan 10:60
set global-flood-deop 3:10
set global-flood-kick 3:10
set global-flood-join 5:60
set global-flood-ctcp 3:60
set global-flood-nick 5:60
set global-aop-delay 5:30
set global-idle-kick 0
set global-chanmode "nt"
set global-stopnethack-mode 0
set global-revenge-mode 0
set global-ban-time 120
set global-exempt-time 60
set global-invite-time 60
set global-chanset {
        -autoop         -autovoice
        -bitch          +cycle
        +dontkickops    +dynamicbans
        +dynamicexempts +dynamicinvites
        -enforcebans    +greet
        -inactive       -nodesynch
        -protectfriends +protectops
        -revenge        -revengebot
        -secret         -seen
        +shared         +statuslog
        +userbans       +userexempts
        +userinvites    -protecthalfops
        -autohalfop
}

channel add #eggdrops {
	chanmode "+nt-likm"
	idle-kick 0
	stopnethack-mode 0
	revenge-mode 0
	ban-time 120
	exempt-time 60
	invite-time 60
	aop-delay 5:30
	flood-chan 10:60
	flood-deop 3:10
	flood-kick 3:10
	flood-join 5:60
	flood-ctcp 3:60
	flood-nick 5:60
}
#### SERVER MODULE ####
loadmodule server
set net-type 3
set nick "$username"
set altnick "$username???"
set realname "http://www.eggdrop.fr"
bind evnt - init-server evnt:init_server

set default-port 6667

set keep-nick 1
set strict-host 0
set quiet-reject 1
set lowercase-ctcp 1
set answer-ctcp 3
set flood-msg 5:60
set flood-ctcp 3:60
set never-give-up 1
set server-cycle-wait 60
set server-timeout 60
set servlimit 0
set check-stoned 1
set serverror-quit 1
set max-queue-msg 300
set trigger-on-ignore 1
set double-mode 1
set double-server 1
set double-help 1
set optimize-kicks 1
set stack-limit 4

### SERVER MODULE - OTHER NETWORKS (net-type 5) ###
#set check-mode-r 1
set nick-len 32

#### CTCP MODULE ####
loadmodule ctcp
set ctcp-mode 0


#### IRC MODULE ####
loadmodule irc
set bounce-bans 1
set bounce-exempts 0
set bounce-invites 0
set bounce-modes 0
set max-bans 30
set max-exempts 20
set max-invites 20
set max-modes 30
#set use-exempts 0
#set use-invites 0
set kick-fun 0
set ban-fun 1
set learn-users 0
set wait-split 600
set wait-info 180
set mode-buf-length 200
unbind msg - hello *msg:hello
#bind msg - myword *msg:hello
unbind msg - ident *msg:ident
unbind msg - addhost *msg:addhost
set opchars "@"
set no-chanrec-info 0

#### TRANSFER MODULE ####
loadmodule transfer
set max-dloads 3
set dcc-block 0
set copy-to-tmp 1
set xfer-timeout 30

#### SHARE MODULE ####
loadmodule share
#set allow-resync 0
#set resync-time 900
#set private-global 0
#set private-globals "mnot"
#set private-user 0
#set override-bots 0

#### COMPRESS MODULE ####
loadmodule compress
set share-compressed 1
set compress-level 9

#### FILESYSTEM MODULE ####
loadmodule filesys
set files-path "/home/eggdrop/eggdrop/filesys"
set incoming-path "/home/eggdrop/eggdrop/filesys/incoming"
set upload-to-pwd 0
set filedb-path ""
set max-file-users 20
set max-filesize 1024

#### NOTES MODULE ####
loadmodule notes
set notefile "$username.notes"
set max-notes 50
set note-life 60
set allow-fwd 0
set notify-users 1
set notify-onjoin 1

#### CONSOLE MODULE ####
loadmodule console
set console-autosave 1
set force-channel 0
set info-party 0

#### SEEN MODULE ####
loadmodule seen

#### BLOWFISH MODULE ####
loadmodule blowfish

#### ASSOC MODULE ####
loadmodule assoc

#### WIRE MODULE ####
loadmodule wire

#### UPTIME MODULE ####
# loadmodule uptime

##### SCRIPTS #####

source scripts/alltools.tcl
source scripts/action.fix.tcl
source scripts/compat.tcl
source scripts/userinfo.tcl
loadhelp userinfo.help

# Global scripts needed by others
source scripts/http.tcl
source scripts/ftp.tcl
source scripts/autolog.tcl