Página anterior Voltar ao início do trabalhoPágina seguinte 

Criando um file server "transparente" no Linux (página 2)

Hugo Cisneiros

 

Este script quando executado, chamará o programa screen para rodar em background o programa xchat-text. Mas se ele está em background, como diremos à ele para conectar a um certo servidor e entrar em um certo canal? Para isso faremos um script em perl. Crie o arquivo "/var/fserver/.xchat/script.pl" com o seguinte conteúdo:

#!/usr/bin/perl -w

# Função que entra identifica o nick, liga o file server e entra nos canais

sub entrarcanais {

IRC::command("/nickserv identify minhasenha");

IRC::command("/fs on");

IRC::command("/join #canal");

}

# Inicialmente conectar no servidor e depois de 1 minuto (6000 milisegundos),

# executar a função acima "entrarcanais"

IRC::command("/server irc.brasnet.org");

IRC::add_timeout_handler(60000,"entrarcanais");

# Função que de 5 em 5 minutos atualiza o file server

sub flushfiles {

IRC::command("/fs on");

IRC::command("/fs update_files");

IRC::add_timeout_handler(300000,"flushfiles");

}

# Ativa o timer que executa a fução flushfiles em 5 minutos

IRC::add_timeout_handler(300000,"flushfiles");

Pronto, agora quando o xchat-text for iniciado, ele automaticamente vai carregar este script em perl. Agora falta configuramos melhor o xchat. Por padrão, a interface texto não cria um xchat.conf muito decente. Então sobrescreva o arquivo "/var/fserver/.xchat/xchat.conf" colocando o seguinte conteúdo:

auto_indent = 1

auto_resume = 1

auto_unmark_away = 0

autodccchat = 1

autodccsend = 1

autodialog = 1

autoopendccchatwindow = 1

autoopendccrecvwindow = 1

autoopendccsendwindow = 1

autoreconnect = 1

autoreconnectonfail = 1

autorejoin = 1

autosave = 1

autosaveurl = 0

awayreason = I'm busy

background_dialog_pic =

background_pic =

ban_type = 0

beep_msg = 1

beep_chans = 0

bluestring =

chanmodebuttons = 1

channelbox = 0

cmdchar = /

colorednicks = 0

ctcp_number_limit = 5

ctcp_time_limit = 30

dcc_blocksize = 4096

dcc_ip =

dcc_permissions = 420

dcc_remove = 0

dcc_send_fillspaces = 1

dcc_stall_timeout = 60

dcc_timeout = 180

dccdir = /var/fserver/incoming

dccwithnick = 0

dialog_height = 100

dialog_indent_nicks = 1

dialog_indent_pixels = 80

dialog_show_separator = 1

dialog_tint = 1

dialog_tint_blue = 151

dialog_tint_green = 151

dialog_tint_red = 151

dialog_transparent = 1

dialog_width = 300

dialog_wordwrap = 1

dnsprogram = host

doubleclickuser = /QUOTE WHOIS %s

fastdccsend = 1

filterbeep = 0

first_dcc_send_port = 0

font_dialog_normal = -misc-fixed-medium-r-semicondensed-*-13-*-*-*-c-*-iso8859-15

font_normal = -misc-fixed-medium-r-semicondensed-*-13-*-*-*-c-*-iso8859-1

font_shell =

fudgeservernotice = 0

hide_version = 0

hidemenu = 0

hideuserlist = 0

hilight_notify = 0

hilightnick = 1

host_in_userlist = 0

hostname =

indent_nicks = 1

indent_pixels = 80

inputgad_superfocus = 1

invisible = 0

ip_from_server = 1

lagometer = 2

last_dcc_send_port = 0

limitedtabhighlight = 1

logging = 0

logmask = %s,%c.xchatlog

mail_check = 0

mainwindow_height = 477

mainwindow_left = 121

mainwindow_save = 1

mainwindow_top = 178

mainwindow_width = 714

max_auto_indent = 256

max_lines = 3000

msg_number_limit = 5

msg_time_limit = 30

newtabs_to_front = 1

nick_suffix = :

nickcompletion = 1

nickgad = 1

nickname1 = Nick1DoFserver

nickname2 = Nick2DoFserver

nickname3 = Nick3DoFserver

notices_tabs = 0

notify_timeout = 15

nu_color = 4

old_nickcompletion = 0

paned_userlist = 0

partreason = Client Exiting

percascii = 0

perccolor = 1

perlwarnings = 0

persist_chans = 1

pingtimeout = 0

priv_msg_tabs = 1

proxy_host =

proxy_port = 0

proxy_type = 0

quitreason = Client Exiting

raw_modes = 0

realname = Campo Nome

reconnect_delay = 10

servernotice = 1

show_away_message = 1

show_away_once = 1

show_invite_in_front_session = 0

show_notify_in_front_session = 0

show_separator = 1

skipmotd = 0

skipserverlist = 1

stamp_format = [%H:%M:%S]

stripcolor = 0

style_inputbox = 1

style_namelistgad = 0

tabchannels = 1

tabs_position = 0

thin_separator = 1

throttle = 1

throttlemeter = 2

timestamp = 0

timestamp_logs = 0

timestamp_log_format = %b %d %H:%M:%S

tint = 1

tint_blue = 151

tint_green = 151

tint_red = 151

topicbar = 1

transparent = 1

trans_file =

treeview = 0

truncchans = 0

use_fontset = 1

use_server_tab = 0

use_trans = 0

userhost = 1

userlist_sort = 0

userlist_icons = 1

userlistbuttons = 1

username = fserver

wallops = 1

whois_on_notifyonline = 0

windows_as_tabs = 1

wordwrap = 1

Sim, este é um arquivo de configuração para o X-Chat modo gráfico, mas as opções que tem a mais não vão influenciar em nada, e tudo que queremos vai estar aí. Você só precisa modificar as linhas que estão em negrito, que são os campos de Nick, Nome Real, Username, entre outros. Veja que também a linha "dccdir = /var/fserver/incoming" dirá que todo arquivo que o file server pegar vai para este diretório. Nesta configuração o DCC Get está habilitado para pegar automaticamente os arquivos, mas se você quiser desabilitar isso, mude no arquivo acima o valor da variável "autodccsend" para 0.

Agora só falta uma coisa: O File Server! Mas é bem simples. Coloque o arquivo "obsidian-0.9.1-pre3.pl" que você baixou no diretório "/var/fserver/.xchat". O X-Chat irá carregar este script automaticamente na inicialização. E parar configurar, crie um arquivo chamado "/var/fserver/.xchat/obsidian.conf" com o seguinte conteúdo:

debug:0

ctcptrigger:1

restorequeues:1

autoon:1

notice_as_msg:0

short_notice:0

raw_chnl_msg:1

raw_wlcm_msg:0

open_tab_early:1

close_tab_auto:0

case_cmd:0

case_file:0

fs_sensitive:0

count_sends:1

send_small_now:1

ads_when_full:1

priority_op:1

priority_voice:1

max_users:10

max_sends:3

max_queues:20

slots_big:1

slots_med:4

slots_small:10

size_big:30000000

size_med:1000000

max_fails:5

min_speed:0

idle_time:180

trigger:!boboalegre

serve_no_notify:#testchnl2

serve_hidden:#testchnl3

notify_to_voice:#testchnl2

notify_channels:#canal

notify_timeout:0

root_dir:/var/fserver/fserver

note:Aqui estão alguns arquivos!! XUGUEM!

auto_backup:60

logo:^C14[^C13Oßsidian FServe^C14]^C

c1:^C13

c2:^C14

c3:^C13

c4:^C15

As linhas em negrito são as principais que você tem que mudar. Vou explicá-las:

priority_op:1 - Dá prioridade para os OPs no file server, ou seja, eles entram na frente de todo mundo na fila dos queues! :)

priority_voice:1 - Mesma coisa do item acima, só que para os que tem voice.

max_users:10 - Quantos usuários podem dar uma olhada no file server ao mesmo tempo.

max_sends:5 - Quantos envios simultâneos o file server pode fazer (1 por pessoa).

max_queues:50 - Quantos queues (ou slots) podem ser ocupados no file server.

slots_big:1 - Quantos slots uma pessoa pode ter com arquivos grandes.

slots_med:4 - Quantos slots uma pessoa pode ter com arquivos médios.

slots_small:10 - Quantos slots uma pessoa pode ter com arquivos pequenos.

size_big:30000000 - Qual o tamanho em bytes para um arquivo ser considerado grande (Aqui: 30MB

size_med:1000000 - Qual o tamanho em bytes para um arquivo ser considerado médio (Aqui: 1MB)

max_fails:5 - Quantas falhas a transfer6encia pode ter até ser cancelado o slot/queue.

trigger:!boboalegre - Qual o trigger do file server.

notify_channels:#canal - Quais canais notificar, separados por virgula

notify_timeout:0 - De quanto em quanto tempo anunciar o file server? (0 = Modo em Silêncio)

root_dir:/var/fserver/fserver - Diretório onde ficam os arquivos do file server

note:Aqui estão alguns arquivos!! XUGUEM! - Mensagem do file server

Você pode mexer nas outras opções também, mas eu não recomendo. Vá testando os valores até você ver que ficou perfeito para você e seu file server. Agora é só rodar o file server com o seguinte comando:

$ /var/fserver/bin/fserver start

E esperar um pouco para que seu file server entre no canal já funcionando. Caso você queira mexer no file server interativamente, você pode a qualquer momento chegar no prompt de comando e digitar:

$ screen -r fserver

Isso irá restaurar a janela do file server, e você poderá utilizar ele como quiser. Inclusive mudar as configurações em tempo real com o comando "/fs". Para poder voltar ao prompt de comando sem ter que sair do xchat-text, utilize a seqüência de teclas CTRL+A D (CTRL+A, solta e aperta D logo em seguida).

Prooooooooooonto! Foi tão difícil assim? Esse método é ótimo para as pessoas que tem várias máquinas rodando Linux por aí, principalmente porque você pode controlar os file servers via SSH, sem a necessidade de interface gráfica nenhuma. Mas isso tudo funciona com interface gráfica também, é só colocar o script perl do obsidian e o arquivo de configuração no diretório .xchat do seu home, que ao xchat gráfico iniciar, ele também irá carregar o script com as configurações. Boa sorte!

Hugo Cisneiros - hugo[arroba]devin.com.br. Última atualização em 04/02/2003

El prsente trabajo fue publicado originalmente en: http://www.devin.com.br/



 Página anterior Voltar ao início do trabalhoPágina seguinte 



As opiniões expressas em todos os documentos publicados aqui neste site são de responsabilidade exclusiva dos autores e não de Monografias.com. O objetivo de Monografias.com é disponibilizar o conhecimento para toda a sua comunidade. É de responsabilidade de cada leitor o eventual uso que venha a fazer desta informação. Em qualquer caso é obrigatória a citação bibliográfica completa, incluindo o autor e o site Monografias.com.