SMB HOWTO
David Wood, dwood@plugged.net.au
v1.1.1, 25 June 1999
Este é SMB HOWTO. Este documento descreve como usar o protocolo
Server Message Block (SMB), também conhecido como protocolo de Sessão
de Mensagens em Blocos, NetBIOS ou LanManager, com Linux.
______________________________________________________________________
Índice geral
1. Introdução
2. Informação adicional
3. Instalação
4. Executando os Daemons
5. Configuração Geral (/etc/smb.conf)
6. Compartilhando um disco Linux com máquinas Windows
7. Compartilhando um drive Windows com máquinas Linux
8. Compartilhando uma impressora Linux com máquinas Windows
9. Compartilhando um impressora Windows com máquinas Linux
10. Tirando cópias de segurança de máquinas Windows em Linux
11. Copyright
12. Agradecimentos
______________________________________________________________________
11.. IInnttrroodduuççããoo
Este é o SMB HOWTO. Este documento descreve como usar o protocolo
Server Message Block (SMB) [Servidor de Bloco de Mensagens], NetBIOS
ou LanManager. Ainda que este documento seja Linux-cêntrico, o Samba
roda na maioria dos sistemas Unix e compatíveis.
Este documento é mantido por David Wood (dwood@plugged.net.au).
Adições, modificações ou correções podem ser enviadas para inclusão na
próxima versão.
Mais documentação sobre o Samba está disponível no Samba Web site,
localizado em http://www.samba.org/ . Você
também pode tentar o newsgroup comp.protocols.smb.
O protocolo SMB é usado pelo Microsoft Windows 3.11, NT and 95/98 para
compartilhar discos e impressoras. Usando o conjunto de ferramentas do
Samba de Andrew Tridgell (Andrew.Tridgell@anu.edu.au), máquinas UNIX
(incluindo Linux) podem compartilhar discos e improssoras com máquinas
Windows. As ferramentas smbfs de Paal-Kr. Engstad
(engstad@intermetrics.com) e Volker Lendecke (lendecke@namu01.gwdg.de)
habilitam máquinas Unix a montar compartilhamentos SMB de hospedeiros
Windows ou SAMBA.
Há quatro coisas que alguém pode fazer com o Samba:
1. Compartilhar um drive Linux com máquinas Windows.
2. Compartilhar um drive Windows com máquinas Linux.
3. Compartilhar impressoras Linux com máquinas Windows.
4. Compartilhar impressoras Windows com máquinas Linux.
Todas estas são cobertas neste documento.
Declaração: Os procedimentos e scripts ou funcionam para o autor ou
tiveram seu funcionamento reportado pelas pessoas que os proveram.
Configurações diferentes podem não funcionar com as informações aqui
dadas. Se você encontrar um situação como esta, você pode enviar um e-
mail para o autor com sugestões de melhorias a este documento, mas o
autor não garante nada. O que você esperava ? O autor é, além de tudo,
um consultor...
Por favor, note que para que máquinas Windows 3.x acessem
compartilhamentos SMB, elas devem ter um pilha TCP/IP e as DLLs do
Win32s. Ambos estão disponíveis no site Web da Microsoft
(http://www.microsoft.com ).
22.. IInnffoorrmmaaççããoo aaddiicciioonnaall
Este HOWTO tenta explicar como configurar os serviços básicos de
impressão e arquivo do SMB numa máquina Linux. O Samba é um pacote
muito complexo e completo. Não há razão para tentar duplicar toda a
documentação para Samba aqui.
Para mais informações, favor veja os seguintes documentos:
· The Samba documentation, disponível como parte da distribuição
Samba. A distribuição está disponível em: ftp://ftp.samba.org/
· The Linux Printing HOWTO.
· The Print2Win Mini-HOWTO.
· Protocol Standard For A NetBIOS Service On A TCP/UDP Transport.
RRFFCC 11000011
Concepts and Methods.
RRFFCC 11000022
Detailed Specifications.
33.. IInnssttaallaaççããoo
Primeiro, para usar o Samba, suas máquinas devem estar num único
segmento de rede ethernet usando o protocolo TCP/IP. O Samba não
funcionará usando outros protocolos de rede. Isto é geralmente fácil
já que o Linux e o Windows 95/98/NT vem com suporte TCP/IP de fábrica.
No entanto, se você estiver usando máquinas Windows 3.x, o suporte a
TCP/IP deve ser adicionado.
Serviços SMB não podem ser utilizados através de roteadores. Se você
quer alguma coisa como isto, você terá que configurar um túnel IP, o
que está além do escopo deste documento.
Para pegar a última versão do Samba, vá nesta URL e escolha o site
espelho mais próximo de você: ftp://ftp.samba.org/
.
Contudo, se você tiver instalado a distribuição RedHat do Linux, você
terá opção de instalá-lo como um pacote. Algumas outras distribuições
também incluem os binários do Samba.
Os seguintes daemons são exigidos pelo pacote Samba. Eles são
instalados tipicamente em /usr/sbin e executam tanto no boot através
de scripts de partida do sistema quanto via inetd.
______________________________________________________________________
smbd (O daemon SMB)
nmbd (Provê serviço de nomes NetBIOS aos clientes)
______________________________________________________________________
Favor notar que o serviço de nomes provido pelo nmbd é diferente
daquele provido pelo serviço de nomes de domínio (DNS). O serviço de
nomes do NetBIOS é um serviço de nomes "estilo Windows" usado para
SMB. Em outras palavras, ter serviço de nomes de domínio DNS não diz
nada sobre a habilidade do Samba de resolver nomes de hosts.
Tipicamente, os seguintes binários do Samba são instalados em /usr/bin
ou /usr/local/samba/bin, no entanto a localizaçõa é opcional.
______________________________________________________________________
smbclient (Um cliente SMB para máquinas UNIX)
smbprint (Um script para imprimir num impressora de um host SMB)
smbprint.sysv (Como acima, mas para máquinas SVR4 UNIX)
smbstatus (Lista as conexões SMB correntes para o host local)
smbrun (Um script 'glue' para facilitar a execução de aplicativos em hosts SMB)
______________________________________________________________________
Os binários para o suporte do sistema de arquivos smbfs são discutidos
depois neste documento.
Adicionalmente, um script chamado 'print' é incluido com este Como
Fazer, que serve como um front-end para o script smbprint.
O pacote Samba é simples de instalar. Simplesmente pegue os fontes do
local mencionado anteriormente, e leia o arquivo README da
distribuição. Há também um arquivo chamado docs/INSTALL.txt na
distribuição que provê um conjunto de instruções passo-a-passo.
Sequindo a instalação, coloque os daemons em /usr/sbin e os binários
em /usr/bin. Instale as páginas man em /usr/local/man.
Quando você fez (make) o pacote Samba, você provavelmente especificou
no Makefile a localização do arquivo de configuração, smb.conf. Esta é
geralmente em /etc, mas você pode colocá-la em qualquer lugar que você
queira. Para estas instruções, nós assumiremos que você especificou a
localização do arquivo de configuração como /etc/smb.conf, a
localização do arquivo de log como log file = /var/log/samba-log.%m e
o diretório de lock como lock directory = /var/lock/samba.
Instale o arquivo de configuração smb.conf. Vá ao diretório onde o
Samba foi feito (built). Procure no subdiretório examples/simple e
leia o arquivo README. Copie o arquivo smb.conf encontrado naquele
diretório para /etc. SEJA CUIDADOSO! Se você tem uma distribuição
Linux que já tem o Samba instalado, você pode já possuir um arquivo de
configuração SAMBA em /etc. Você deve provavelmente começar com este.
Se você não quer ter seu arquivo de configuração em /etc, coloque-o
onde você quiser, então coloque um symlink in /etc:
______________________________________________________________________
ln -s /caminho/para/o/smb.conf /etc/smb.conf
______________________________________________________________________
44.. EExxeeccuuttaannddoo ooss DDaaeemmoonnss
Os dois daemons SMB são /usr/sbin/smbd e /usr/sbin/nmbd.
Você pode rodar os daemons do Samba do inetd ou como processos
independentes(stand-alone). O Samba irá responder ligeiramente mais
rápido como um daemon stand-alone do que rodando pelo inetd.
Em ambos os casos, você deve verificar se existem linhas no arquivo
/etc/services como estas:
______________________________________________________________________
netbios-ns 137/tcp nbns
netbios-ns 137/udp nbns
netbios-dgm 138/tcp nbdgm
netbios-dgm 138/udp nbdgm
netbios-ssn 139/tcp nbssn
______________________________________________________________________
Certifique-se de que todas estão sem as marcas de comentários.
Dependendo da sua distribuição, você pode até mesmo ter que
adicioná-las. O Samba não será capaz de fazer a ligação (bind) às
portas apropriadas enquanto o arquivo /etc/service não contenha estas
entradas.
Para rodar os daemons do inetd, coloque as seguintes linhas no arquivo
de configuração do inetd, /etc/inetd.conf:
______________________________________________________________________
# SAMBA NetBIOS services (for PC file and print sharing)
netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd
netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd
______________________________________________________________________
Então, reinicie o daemon do inetd com o segunite comando:
______________________________________________________________________
kill -HUP `cat /var/run/inetd.pid`
______________________________________________________________________
Para executar os daemons com os scripts de inicialização do sistema,
coloque o seguinte script num arquivo chamado /etc/rc.d/init.d/smb
(para uma distribuição RedHat) e faça um link simbólico para os
arquivos especificados nos comentários abaixo:
______________________________________________________________________
#!/bin/sh
#
# /etc/rc.d/init.d/smb - starts and stops SMB services.
#
# Os arquivos abaixo devem ser links simbólicos para este arquivo:
# symlinks: /etc/rc.d/rc1.d/K35smb (Mata os serviços SMB no shutdown)
# /etc/rc.d/rc3.d/S91smb (Inicia os serviços SMB no modo multiusuário)
# /etc/rc.d/rc6.d/K35smb (Mata os serviços SMB no reboot)
#
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# See how we were called.
case "$1" in
start)
echo -n "Starting SMB services: "
daemon smbd -D
daemon nmbd -D
echo
touch /var/lock/subsys/smb
;;
stop)
echo -n "Shutting down SMB services: "
killproc smbd
killproc nmbd
rm -f /var/lock/subsys/smb
echo ""
;;
*)
echo "Usage: smb {start|stop}"
exit 1
esac
______________________________________________________________________
Se você obter um erro durante a inicialização, que diz alguma coisa
sobre o daemon não conseguir fazer ligação (bind) com a porta 139,
então você provavelmente possui outro processo Samba rodando e que
ainda não foi derrubado. Verifique a lista de processos (com 'ps auxww
| grep mbd') para determinar se há outro serviço Samba rodando.
55.. CCoonnffiigguurraaççããoo GGeerraall ((//eettcc//ssmmbb..ccoonnff))
A configuração do Samba no Linux (ou numa outra máquina UNIX) é
controlada por um único arquivo, /etc/smb.conf. Este arquivo determina
que recursos do sistema você quer compartilhar com o mundo exterior e
que restrições você deseja que sejam aplicadas a eles.
Já que as seções seguintes irão tratar do compartilhamento de discos e
impressoras Linux com máquinas Windows, o arquivo smb.conf mostrado
nesta seção é o mais simples possível, somente para fins de
introdução.
Não se preocupe ainda com os detalhes. As seções seguintes
introduzirão os conceitos principais.
Cada seção do arquivo começa com um cabeçalho de seção como [global],
[homes], [printers], etc.
A seção [global] define algumas variáveis que o Samba utilizará para
definir o compartilhamento de todos os recursos.
A seção [homes] permite a usuários remotos acessar seus próprios (e
somente os seus) diretórios home na máquina local. Isto é, usuários
tentando se conectar a este compartilhamento de máquinas Windows,
serão conectados ao seus diretórios home pessoais. Note que para fazer
isso, eles devem ter uma conta na máquina Linux.
O arquivo smb.conf de exemplo abaixo, permite que usuários remotos
acessessem seus diretórios home na máquina local e que escreva em um
diretório temporário. Para que um usuário Windows veja estes
compartilhamentos, a máquina Linux deve estar na rede local. Então o
usuário simplesmente conecta um drive de rede no Gerenciador de
Arquivos ou no Windows Explorer.
Note que nas seções seguintes, entradas adicionais a este arquivo
serão dadas para permitir o compartilhamento de mais recursos.
______________________________________________________________________
; /etc/smb.conf
; Certifique-se de reiniciar o servidor depois de fazer alterações neste arquivo, ex:
; /etc/rc.d/init.d/smb stop
; /etc/rc.d/init.d/smb start
[global]
; Se você deseja uma conta guest, descomente a linha abaixo:
; guest account = nobody
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
share modes = yes
[homes]
comment = Diretorios Home
browseable = no
read only = no
create mode = 0750
[tmp]
comment = Espaco de armazenamento temporario
path = /tmp
read only = no
public = yes
______________________________________________________________________
Tendo escrito um novo smb.conf, é muito útil testá-lo para verificar
se há erros. Você pode testar um arquivo smb.conf, usando o utilitário
'testparm' (página man: testparm); se testparm não reportar nenhum
problema, o smbd irá carregar o arquivo de configuração corretamente.
Aqui temos um bom truque: se seu servidor Samba tem mais de uma
interface ethernet, o smbd pode se ligar (bind) a interface errada. Se
for o caso, você pode determinar a qual porta ele devera se ligar pela
adição de uma linha parecidada como esta na sação [global] do
/etc/smb.conf:
______________________________________________________________________
interfaces = 192.168.1.1/24
______________________________________________________________________
onde você deverá trocar o endereço IP acima pelo que você atribuiu a
interface ethernet correta. O "24" é correto para um rede classe C,
mas deve ser calculado se você tiver feito sub-redes. O número se
refere a máscara de rede. Números para outras classes de redes são
fornecidos no IP-Masquerade mini-HOWTO.
Existe agora uma ferramenta de configuração gráfica para o Samba:
GtkSamba. Veja http://www.open-systems.com/gtksamba.html
.
66.. CCoommppaarrttiillhhaannddoo uumm ddiissccoo LLiinnuuxx ccoomm mmááqquuiinnaass WWiinnddoowwss
Como mostrado no exemplo de smb.conf acima, compartilhar drives Linux
com usuários Windows é fácil. Contudo, como tudo no Samba, você pode
controlar coisas em um alto grau. Aqui são alguns exemplos:
Para compartilhar um diretório com o público, crie uma cópia da seção
[tmp] anterior e adicione algo como neste smb.conf:
______________________________________________________________________
[public]
comment = Area Publica
path = /home/public
public = yes
writable = yes
printable = no
______________________________________________________________________
Para fazer com que o diretório acima possa ser lido pelo público
(todos), mas somente gravável pelos membros do grupo staff, modifique
as entradas como abaixo:
______________________________________________________________________
[public]
comment = Public Stuff
path = /home/public
public = yes
writable = yes
printable = no
write list = @staff
______________________________________________________________________
Normalmente é assim fácil; você agora deve estar habilitado a iniciar
o Samba e visualizar os compartilhamentos de um PC com Windows.
Contudo, a Microsoft recentemente tornou a vida um pouco mais difícil
para quem usa Samba. O Windows 98, Windows NT (service pack 3 ou
posterior) e as últimas versões do Windows 95 agora usam senhas
criptografadas como padrão. O Samba usa senhas não criptografadas por
padrão. Você não pode visualizar servidores quando o cliente ou o
servidor estão usando senhas criptografadas, porque a conexão não pode
ser feita anonimamente.
Você pode dizer se tem uma diferença de tipo de senhas entre o cliente
e o servidor, se quando você tentar se conectar a um compartilhamento
você vir uma caixa de diálogo que mostra algo como "Você não tem
permissão para acessar esta conta nesta máquina.
Você também pode configurar o seu servidor Samba para usar senhas
criptografadas, ou configurar suas máquinas Windows para usar senhas
não criptografadas.
Para fazer o Windows trabalhar com senhas criptografadas:
Windows 95/98 =============
Usando o editor do registro (regedit), crie a seguinte chave:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP
Adicione um novo valor DWORD: Value Name: EnablePlainTextPassword
Data: 0x01.
Windows NT ==========
Usando o editor do registro (regedit), crie a seguinte chave:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\Parameters
Adicione um novo valor DWORD:
Value Name: EnablePlainTextPassword Data: 0x01
Uma vez que as alterações no registro tenham sido feitas, reinicie a
máquina Windows e tente mapear um drive de rede no servidor Samba de
novo. Isto deve funcionar, já que o servidor Samba está usando senhas
não criptografadas.
Para configurar o Samba para usar senhas criptografadas:
Na seção [global] do /etc/smb.conf, adicione as seguintes linhas:
______________________________________________________________________
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
______________________________________________________________________
Você é altamente encorajado a ler os arquivos ENCRYPTION.txt,
Win95.txt e WinNT.txt na documentação do Samba antes de fazer isso.
Se seus clientes e seu servidor estão usando senhas criptografadas,
você não será capaz de visualizar compartilhamentos no servidor até
que uma conexão inicial tenha sido feita com a autenticação
apropriada. Para conseguir a conexão inicial, entre o nome do
compartilhamento manualmente no Gerenciador de Arquivos ou na caixa de
diálogo do Explorer, na forma '\\\'.
Registre-se no servidor com um nome de usuário e senha que lhe são
válidos.
Se você suspeita que seu serviço de nomes NetBIOS não está
corretamente configurado (talvés porque você tenha obtido erros 'host
not found' ao tentar se conectar), tente usar somente o endereço IP do
servidor: '\\\'.
Para que o nome dos arquivos apareçam corretamente, você pode precisar
configurar algumas opções na seção de compartilhamento apropriada.
Estas funcionam para clientes Windows 85/98/NT, mas podem precisar ser
modificadas se você tem clientes Windows 3.x:
______________________________________________________________________
; Mangle case = yes aparentemente fornece os nomes de arquivo corretos para Win95/98/NT
mangle case = yes
; Se o samba deve diferenciar maiúsculas e minúsculas quando procurando por arquivos
case sensitive = no
; Padrão de letras maiúsculas ou minúsculas para quando os arquivos são criados
default case = lower
; Preservar maiúsculas e minúsculas para todos os nomes de arquivo
preserve case = yes
; Preservar maiúsculas e minúsculas para nomes DOS (8.3)
short preserve case = no
______________________________________________________________________
Para outros truques com compartilhamento de drives, veja a
documentação do Samba, ou suas páginas man.
______________________________________________________________________
interfaces = 192.168.1.1/24
______________________________________________________________________
Observação: O número depois da / é uma referência a máscara de sub-
rede. "24" é o valor a usar para uma rede Classe C não segmentada.
Para mais informações sobre cálculo de sub-redes, você pode visitar
http://www.ziplink.net/~ralphb/IPSubnet/index.html
.
Há muito mais configurações no Samba, mas isto é apenas para iniciar
você. Se você quiser fazer algo mais avançado, eu lhe recomendaria o
site Web do Samba, mencionado acima.
77.. CCoommppaarrttiillhhaannddoo uumm ddrriivvee WWiinnddoowwss ccoomm mmááqquuiinnaass LLiinnuuxx
Um programa cliente SMB para máquinas UNIX é incluido na distribuição.
Ele provê uma interface tipo ftp com linha de comando. Você pode usar
este utilitário para transferir arquivos entre um 'servidor' Windows
e um cliente Linux.
Para ver quais compartilhamentos estão disponíveis num determinado
host, execute:
______________________________________________________________________
/usr/sbin/smbclient -L host
______________________________________________________________________
Onde 'host' é o nome da máquina que você deseja ver. Isto irá retornar
uma lista de nomes de serviço, isto é, nomes de drives ou impressoras
que o servidor pode compartilhar com você. A menos que o servidor SMB
não possua nenhuma medida de segunça configurada, ele irá lhe
perguntar uma senha. Dê-lhe a senha para a conta 'guest' ou para a sua
senha pessoal naquela máquina.
Por exemplo:
______________________________________________________________________
smbclient -L zimmerman
______________________________________________________________________
A saída do comando deve parecer com esta:
______________________________________________________________________
Server time is Sat Aug 10 15:58:27 1996
Timezone is UTC+10.0
Password:
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
public Disk Public
C$ Disk Default share
IPC$ IPC Remote IPC
OReilly Printer OReilly
print$ Disk Printer Drivers
This machine has a browse list:
Server Comment
--------- -------
HOPPER Samba 1.9.15p8
KERNIGAN Samba 1.9.15p8
LOVELACE Samba 1.9.15p8
RITCHIE Samba 1.9.15p8
ZIMMERMAN
______________________________________________________________________
A lista de visualização mostra outros servidores SMB com recursos a
compartilhar na rede.
Para usar o cliente, execute:
______________________________________________________________________
/usr/sbin/smbclient service
______________________________________________________________________
onde 'serviço' é a máquina e o nome do compartilhamento. Por exemplo,
se você está tentando alcançar um diretório que foi compartilhado como
'public' numa máquina chamada zimmerman, o serviço deveria se chamar
\\zimmerman\public. No entanto, devido a limitações do shell, você
terá que dobrar as barras, logo, você terá por fim algo assim:
______________________________________________________________________
/usr/sbin/smbclient \\\\zimmerman\\public mypasswd
______________________________________________________________________
Onde 'mypasswd' é sua senha.
Você obterá o seguinte prompt do smbclient:
______________________________________________________________________
Server time is Sat Aug 10 15:58:44 1996
Timezone is UTC+10.0
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
smb: \>
______________________________________________________________________
Digite 'h' para obter ajuda usando o smbclient:
______________________________________________________________________
smb: \> h
ls dir lcd cd pwd
get mget put mput rename
more mask del rm mkdir
md rmdir rd prompt recurse
translate lowercase print printmode queue
cancel stat quit q exit
newer archive tar blocksize tarmode
setmode help ? !
smb: \>
______________________________________________________________________
Se você sabe utilizar o ftp, você não precisará das páginas de ajuda
para o smbclient.
Mesmo pondedo usar o smbclient para testes, você logo estará saturado
dele para trabalhos de verdade. Para estes você provavelmente usará o
pacote smbfs. O smbfs vem com dois utilitários simples: smbmount e
smbumount. Eles funcionam de forma muito similar a mount e umount, só
que para compartilhamentos SMB.
O pacote smbfs já é incluido na maioria das distribuições Linux. Uma
coisa importante a observar: Você deve possuir suporte a smbfs
compilado no kernel para utilizar estes utilitários.
88.. CCoommppaarrttiillhhaannddoo uummaa iimmpprreessssoorraa LLiinnuuxx ccoomm mmááqquuiinnaass WWiinnddoowwss
Para compartilhar uma impressora Linux com máquinas Windows, você
precisa ter certeza que sua impressora está configurada no Linux. Se
você pode imprimir do Linux, configurar um compartilhamento SMB da
impressora é bem simples.
Veja o Printing HOWTO para configurar uma impressora local.
Já que o autor usou uma impressora conectada a uma máquina Windows NT
(há muito tempo atrás - antes de converter nossa rede ao Linux, quase
em sua totalidade), esta seção não deve ser vista como definitiva, mas
meramente uma sugestão. Qualquer um com detalhes a compartilhar, por
favor, envie-os a dwood@plugged.net.au Assim, esta seção pode ser
completada.
Adicionando configurações de impressão a seu sbm.conf:
______________________________________________________________________
[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba-log.%m
lock directory = /var/lock/samba
[printers]
comment = All Printers
security = server
path = /var/spool/lpd/lp
browseable = no
printable = yes
public = yes
writable = no
create mode = 0700
[ljet]
security = server
path = /var/spool/lpd/lp
printer name = lp
writable = yes
public = yes
printable = yes
print command = lpr -r -h -P %p %s
______________________________________________________________________
Tenha certeza que a o caminho da impressora (neste caso abaixo de
[ljet]) casa com o diretório de spool em /etc/printcap!
As linhas:
______________________________________________________________________
printcap name = /etc/printcap
load printers = yes
______________________________________________________________________
controlam quando todas as impressoras em /etc/printcap devem ser
cerregadas por padrão ou não. Se você fizer isso, não há razão para
configurar impressoras individualmente. A seção [printers] escifica
opções para as impressoras que você quer definir explicitamente. Se o
subsistema de impressão que você está usando não funciona deste modo
(BSD), você terá que configurar um arquivo printcap falso (ou usar a
técnica do 'comando de impressão', veja abaixo). Para mais informações
sobre o sistema printcap veja o Printing HOWTO.
Uma técnica útil de testar a conexão de rede é trocar o camando de
impressão para:
______________________________________________________________________
print command = cp %S /tmp/print.%P.%S
______________________________________________________________________
O arquivo resultante pode então ser analisado.
Observação: Há alguns problemas ao se compartilhar impressoras em
máquinas UNIX com máquinas NT usando Samba. Um dos problemas é o NT
ver a impressora compartilhada corretamente. Para solucionar, use as
observações contidas na documentação do Samba no arquivo
docs/WinNT.txt. Outro problema ocorre com as senhas. Veja os
comentários no mesmo arquivo sobre uma forma irritante de compreensão
e falha para solucionar o problema.
Oleg L. Machulskiy (machulsk@shade.msu.ru) sugere que um comando de
impressão melhor para o exemplo acima seria:
______________________________________________________________________
print command = smb2ps %s | lpr -r -h -P %p
______________________________________________________________________
onde 'smb2ps' é um script que transforma os arquivos de spool
recebidos do Windows em usáveis e comuns arquivos Postscript. Ele deve
cortar as primeiras três e as últimas duas linhas, porque estas linhas
contém código PJL ou PCL.
Este método só é necessário se sua máquina Windows está imprimindo PCL
e não Postscript realmente. Eu tenho visto que no Windows 95/98/NT não
tem um driver genérico para Postscript, mas o driver da "Digital turbo
Printserver 20" funciona como um bom driver genérico de Postscript
para a maioria das configurações. Eu também tenho ouvido que o driver
da "Apple LaserWriter II NTX" também funciona para este fim.
Jeff Stern (jstern@eclectic.ss.uci.edu) reporta o seguinte, o que pode
ajudar alguns de vocês:
--------------------------%<---------------------------------- O
problema que eu estava tendo, era que eu podia imprimir via lpd/lpr na
minha impressora do Linux. Mas, eu não conseguia imprimir de uma
máquina Win95 remota. Então eu tentei:
smbclient \\eclectic\belen -P
e então:
print myfile
Eu obtive erros como acesso negado. Então, eu configurei as permissões
em meu diretório /var/spool/lpd/lp1 para 777. Me desculpe, mas foi
isso que eu tive que fazer. Eu acho que alternativamente, eu poderia
ter posto todos os usuários no grupo 'lp', ou feito dado a posse do
diretório ao grupo 'users', etc... Mas por enquanto, este método está
funcionando (com propriedade root:lp).
Finalmente, uma outra coisa que os administradores devem saber é que o
nome da conta na máquina Windows (na qual eu estava tentando usar a
impressora Linux via Samba) deve ter equivalente no Linux. Assim, se
há um usuário chamado 'joe' na máquina Windows 'mywinbox' tentando
imprimir na impressora 'belen' da máquina Linux 'eclectic'
(\\eclecticz\belen, deverá haver um usuário chamado 'joe' na máquina
Linux. Então o login e a senha do usuário 'joe' serão a senha para
acesar a impressora belen da máquina eclectic. Esta senha será
solicitada na máquina Windows quando você estiver configurando a
impressora com Impressoras | Adicionar Nova.
Eu pensei que este tipo de problema não seria bem o caso, mas eu
configurei minha impressora com acesso público no smb.conf. Mas
aparentemente, ela continua a pedir senha. (A máquina Windows,
infelizmente, não lhe dá a oportunidade de informar um nome de usuário
diferente para a impressora remota (Linux). Ela simplesmente usa o
nome do usuário atual que você informou quando iniciou o Win95.
--------------------------%<----------------------------------
O Dr. Michael Langner langner@fiz-chemie.de mostra que problemas de
permissão de escrita na árvore de /var/spool/lpd/ podem ser evitados
por alguma coisa como "path = /tmp" e "print command = lpr -r -P%p
%s".
Algumas vezes, um error de interpretação do Postscript irá ocorrer
quando você estiver imprimindo de máquinas Windows, o que causa a
impressão de uma página extra no fim de cada trabalho de impressão. A
útima página sempre conterá "%%[ Lastpage ]%%" em seu topo.
Aparentemente isto acontece apenas com o Windows 95 e 98 e é devido a
um defeito no Postscript gerado.
Uma maneira de lidar com isso é usar um script que remove a pequena
parte ruim desde Postscript dos trabalhos da fila de impressão. Outra
maneira é tentar encontrar um driver Postscript melhor para Windows.
Provavelmente a melhor maneira é usarmos LPRng invés de Postscript
para imprimir num servidor Samba.
Erik Ratcliffe (erik@caldera.com) da Caldera contou-me que usando
LPRng significa que qualquer driver de impressão pode ser usado na
máquina Windows. No servidor Samba, ele usou uma entrada no
/etc/printcap que se parece com esta:
______________________________________________________________________
raw:\
:rw:sh:
:lp=/dev/lp1
:sd=/var/spool/lpd/raw
:fx=flp
______________________________________________________________________
LPRng não requer :\ no final de cada linha. Uma linha de impressora
ainda precisa ser adicionada ao /etc/smb.conf para a impressora
física. O comando de impressão precisa usar a entrada "raw" do
/etc/printcap e os dados precisam ser enviados para a impressora em
formato binário. Tente um comando de impressão como este:
______________________________________________________________________
print command = lpr -b -Praw %s
______________________________________________________________________
Você também pode precisar configurar o spooling no Windows 95 para
imprimir diretamente para a impressora, ao invés de fazer spool.
99.. CCoommppaarrttiillhhaannddoo uumm iimmpprreessssoorraa WWiinnddoowwss ccoomm mmááqquuiinnaass LLiinnuuxx
Para compartilhar uma impressora de uma máquina Windows, você deve
fazer o seguinte:
1. Você deve possuir as entradas apropriadas no /etc/printcap e elas
devem corresponder a estrutura local de diretórios (para o
diretório de spool, etc).
2. Você deve ter o script /usr/bin/smbprint. Ele vem junto dos fontes
do Samba, mas não em todas as distribuições binárias. Uma cópia
levemente modificada será discutida abaixo.
3. Se você quer converter arquivos ASCII para Postscript, você deve
ter o nenscript, ou um equivalente. nescript é um conversor para
Postscript e é geralmente instalado em /usr/bin.
4. Você pode querer fazer a impressão do Samba ficar mais fácil tendo
um programa interface que torne-a simples de usar. Um script em
Perl simples para manipular ASCII, Postscript ou Postscript criado
é dado abaixo.
5. Você pode também usar o MagicFilter para fazer o item acima.
Detalhes sobre como configurar o MagicFilter são fornecidos depois
do script perl. O MagicFilter tem vantegens porque ele sabe como
converter automaticamente muitos formatos de arquivo.
6.
a. A entrada no arquivo /etc/printcap abaixo é para um impressora
HP 5MP numa máquina Windows NT. As entradas são como as que
seguem abaixo:
________________________________________________________________
cm - comentário
lp - dispositivo a abrir para saída
sd - o diretório de spool da impressora (na máquina local).
af - o arquivo de registro (contabilidade)
mx - o tamanho máximo de arquivo (zero é ilimitado)
if - o nome do filtro de entrada.
________________________________________________________________
Para mais informações, veja o Printing HOWTO ou a página man do
printcap.
___________________________________________________________________
# /etc/printcap
#
# //zimmerman/oreilly via smbprint
#
lp:\
:cm=HP 5MP Postscript OReilly on zimmerman:\
:lp=/dev/lp1:\
:sd=/var/spool/lpd/lp:\
:af=/var/spool/lpd/lp/acct:\
:mx#0:\
:if=/usr/bin/smbprint:
___________________________________________________________________
Tenha certeza que os diretórios de spool e registro (contabilidade)
existem e são graváveis. Assegure-se que a linha que tem o 'if'
contenha o caminho correto para o script smbprint (dado abaixo) e
tenha certeza que o dispositivo apropriado tenha sido indicado (o
arquivo especial /dev).
Depois vem o próprio script smbprint. Ele normalmente é colocado em
/usr/bin e é atribuído a Andrew Tridgell, a pessoa que criou o
Samba, até onde eu sei. Ele vem junto da distribuição dos fontes do
Samba, mas não vem em algumas distribuições binárias, assim sendo
eu o reproduzi aqui.
Você pode quer dar uma olhada cuidadosa nele. Há algumas pequenas
alterações que se mostraram muito úteis.
___________________________________________________________________
#!/bin/sh -x
# This script is an input filter for printcap printing on a unix machine. It
# uses the smbclient program to print the file to the specified smb-based
# server and service.
# For example you could have a printcap entry like this
#
# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
#
# which would create a unix printer called "smb" that will print via this
# script. You will need to create the spool directory /usr/spool/smb with
# appropriate permissions and ownerships for your system.
# Set these to the server and service you wish to print to
# In this example I have a WfWg PC called "lapland" that has a printer
# exported called "printer" with no password.
#
# Script further altered by hamiltom@ecnz.co.nz (Michael Hamilton)
# so that the server, service, and password can be read from
# a /usr/var/spool/lpd/PRINTNAME/.config file.
#
# In order for this to work the /etc/printcap entry must include an
# accounting file (af=...):
#
# cdcolour:\
# :cm=CD IBM Colorjet on 6th:\
# :sd=/var/spool/lpd/cdcolour:\
# :af=/var/spool/lpd/cdcolour/acct:\
# :if=/usr/local/etc/smbprint:\
# :mx=0:\
# :lp=/dev/null:
#
# The /usr/var/spool/lpd/PRINTNAME/.config file should contain:
# server=PC_SERVER
# service=PR_SHARENAME
# password="password"
#
# E.g.
# server=PAULS_PC
# service=CJET_371
# password=""
#
# Debugging log file, change to /dev/null if you like.
#
logfile=/tmp/smb-print.log
# logfile=/dev/null
#
# The last parameter to the filter is the accounting file name.
#
spool_dir=/var/spool/lpd/lp
config_file=$spool_dir/.config
# Should read the following variables set in the config file:
# server
# service
# password
# user
eval `cat $config_file`
#
# Some debugging help, change the >> to > if you want to same space.
#
echo "server $server, service $service" >> $logfile
(
# NOTE You may wish to add the line `echo translate' if you want automatic
# CR/LF translation when printing.
echo translate
echo "print -"
cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user -N -P >> $logfile
___________________________________________________________________
A maioria das distribuições Linux vem com o nenscript para con
verter documentos ASCII em Postscript. O script perl abaixo
facilita a nossa vida fornecendo uma interface simples ao Linux
para impressão via smbprint.
___________________________________________________________________
Uso: print [-a|c|p]
-a imprime como ASCII
-c imprime como arquivo fonte formatado
-p imprime como Postscript
Se nenhuma opção for dada, print tenta descobrir o
tipo de arquivo e imprimi-lo apropriadamente.
___________________________________________________________________
Usando o smbprint para imprimir arquivos ASCII tende a cortar lin
has grandes. Este script quebra linhas grandes com espaços em
branco (ao invés de no meio das palavras), se possível.
A formatação do código fonte é feita com o nescript. Ele pega um
arquivo ASCII e o formata em duas colunas com um cabeçalho legal
(data, nome do arquivo, etc). Ele também numera as linhas. Usando
isto como exemplo, outros tipos de formatação podem ser obtidos.
Documentos Postscript já estão formatados adequadamente, então
repasse-os automaticamente.
___________________________________________________________________
#!/usr/bin/perl
# Script: print
# Autores: Brad Marshall, David Wood
# Plugged In Communications
# Data: 960808
#
# Script para imprimir numa impressora Postscript printer via Samba.
# Finalidade: Pega arquivos de vários tipos e arqumentos e os processa
# apropriadamente para um canal(pipe) do script de impressão do Samba.
#
# Currently supported file types:
#
# ASCII - assegura-se que as linhas maiores que $line_length caracteres
# sejam quebradas nos espaçoes em branco.
# Postscript - Não faz nada.
# Code - Formata em Postscript (usando nenscript) para aparecer
# adequadamente(landscape, font, etc).
#
# Determina o maior comprimento de linha permitido em textos ASCII
$line_length = 76;
# Determina o nome e o caminho do script de impressão do samba
$print_prog = "/usr/bin/smbprint";
# Determina o nome e o caminho para o nescript (o conversor ASCII-->Postscript)
$nenscript = "/usr/bin/nenscript";
unless ( -f $print_prog ) {
die "Não pude encontrar $print_prog!";
}
unless ( -f $nenscript ) {
die "Não pude encontrar $nenscript!";
}
&ParseCmdLine(@ARGV);
# DBG
print "Arquivo do tipo $filetype\n";
if ($filetype eq "ASCII") {
&wrap($line_length);
} elsif ($filetype eq "code") {
&codeformat;
} elsif ($filetype eq "ps") {
&createarray;
} else {
print "Desculpe... tipo de arquivo desconhecido.\n";
exit 0;
}
# Canalisa a matriz para o smbprint
open(PRINTER, "|$print_prog") || die "Não pude abrir $print_prog: $!\n";
foreach $line (@newlines) {
print PRINTER $line;
}
# Envia um linefeed extra no caso do arquivo ter uma última linha incompleta.
print PRINTER "\n";
close(PRINTER);
print "Completed\n";
exit 0;
# --------------------------------------------------- #
# Tudo daqui para baixo são sub-rotinas #
# --------------------------------------------------- #
sub ParseCmdLine {
# Parses the command line, finding out what file type the file is
# Gets $arg and $file to be the arguments (if the exists)
# and the filename
if ($#_ < 0) {
&usage;
}
# DBG
# foreach $element (@_) {
# print "*$element* \n";
# }
$arg = shift(@_);
if ($arg =~ /\-./) {
$cmd = $arg;
# DBG
# print "\$cmd found.\n";
$file = shift(@_);
} else {
$file = $arg;
}
# Defining the file type
unless ($cmd) {
# We have no arguments
if ($file =~ /\.ps$/) {
$filetype = "ps";
} elsif ($file =~ /\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm$/) {
$filetype = "code";
} else {
$filetype = "ASCII";
}
# Process $file for what type is it and return $filetype
} else {
# We have what type it is in $arg
if ($cmd =~ /^-p$/) {
$filetype = "ps";
} elsif ($cmd =~ /^-c$/) {
$filetype = "code";
} elsif ($cmd =~ /^-a$/) {
$filetype = "ASCII"
}
}
}
sub usage {
print "
Usage: print [-a|c|p]
-a prints as ASCII
-c prints formatted as source code
-p prints as Postscript
If no switch is given, print attempts to
guess the file type and print appropriately.\n
";
exit(0);
}
sub wrap {
# Create an array of file lines, where each line is < the
# number of characters specified, and wrapped only on whitespace
# Get the number of characters to limit the line to.
$limit = pop(@_);
# DBG
#print "Entering subroutine wrap\n";
#print "The line length limit is $limit\n";
# Read in the file, parse and put into an array.
open(FILE, "<$file") || die "Can't open $file: $!\n";
while() {
$line = $_;
# DBG
#print "The line is:\n$line\n";
# Wrap the line if it is over the limit.
while ( length($line) > $limit ) {
# DBG
#print "Wrapping...";
# Get the first $limit +1 characters.
$part = substr($line,0,$limit +1);
# DBG
#print "The partial line is:\n$part\n";
# Check to see if the last character is a space.
$last_char = substr($part,-1, 1);
if ( " " eq $last_char ) {
# If it is, print the rest.
# DBG
#print "The last character was a space\n";
substr($line,0,$limit + 1) = "";
substr($part,-1,1) = "";
push(@newlines,"$part\n");
} else {
# If it is not, find the last space in the
# sub-line and print up to there.
# DBG
#print "The last character was not a space\n";
# Remove the character past $limit
substr($part,-1,1) = "";
# Reverse the line to make it easy to find
# the last space.
$revpart = reverse($part);
$index = index($revpart," ");
if ( $index > 0 ) {
substr($line,0,$limit-$index) = "";
push(@newlines,substr($part,0,$limit-$index)
. "\n");
} else {
# There was no space in the line, so
# print it up to $limit.
substr($line,0,$limit) = "";
push(@newlines,substr($part,0,$limit)
. "\n");
}
}
}
push(@newlines,$line);
}
close(FILE);
}
sub codeformat {
# Call subroutine wrap then filter through nenscript
&wrap($line_length);
# Pipe the results through nenscript to create a Postscript
# file that adheres to some decent format for printing
# source code (landscape, Courier font, line numbers).
# Print this to a temporary file first.
$tmpfile = "/tmp/nenscript$$";
open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") ||
die "Can't open nenscript: $!\n";
foreach $line (@newlines) {
print FILE $line;
}
close(FILE);
# Read the temporary file back into an array so it can be
# passed to the Samba print script.
@newlines = ("");
open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";
while() {
push(@newlines,$_);
}
close(FILE);
system("rm $tmpfile");
}
sub createarray {
# Create the array for postscript
open(FILE, "<$file") || die "Can't open $file: $!\n";
while() {
push(@newlines,$_);
}
close(FILE);
}
___________________________________________________________________
Agora, via MagicFilter. Obrigado a Alberto Menegazzi
(flash.egon@iol.it) por esta informação.
Alberto disse:
--------------------------%<---------------------------------- 1)
Instale o MagicFilter com o filtro de impressoras que você precisa
em /usr/bin/local mas não preencha o /etc/printcap com a sugestão
dada na documentação do MagicFilter.
2) Escreva o /etc/printcap desta forma (está feito para minha
LaserJet 4L):
lp|ljet4l:\ :cm=HP LaserJet 4L:\ :lp=/dev/null:\
# or /dev/lp1 :sd=/var/spool/lpd/ljet4l:\
:af=/var/spool/lpd/ljet4l/acct:\ :sh:mx#0:\
:if=/usr/local/bin/main-filter:
Você pode perceber que o lp=/dev/... está aberto para fazer o lock
ing de tais dispositivos "virtuais", deve ser usado um para cada
impressora remota.
Exemplo criando com: touch /dev/ljet4l
Escreva o filtro /usr/local/bin/main-filter, o mesmo que você sug
eriu usando o filtro ljet4l-filter ao invés do cat.
Aqui está o meu:
#! /bin/sh logfile=/var/log/smb-print.log
spool_dir=/var/spool/lpd/ljet4l ( echo "print -"
/usr/local/bin/ljet4l-filter ) | /usr/bin/smbclient
"\\\\SHIR\\HPLJ4" -N -P >> $logfile
P.S. : aqui vai uma citação do Print2Win mini-Howto sobre locking e
porque criar impressoras virtuais
Starts here--> ---Começa aqui
Dica de Rick Bressler :
Boa dica. Eu uso algo muito parecido. Uma dica útil é que isso não
é uma boa idéia:
:lp=/dev/null:\
lpr abre em modo exclusivo o arquivo que você especifica em lp=.
Ele o faz para evitar que vários processos tentem imprimir na mesma
impressora ao mesmo tempo.
O efeito colateral disto no seu caso, eng e colour não podem
imprimir ao mesmo tempo, (normalmente mais ou menos transparente,
já que provavelmente elas imprimem rapidamente e já que elas enfil
eram, você provavelmente não percebe) mas qualquer outro processo
que tenta escrever em /dev/null será quebrado!
Em um sistema monousuário, provavelmente não é um grande problema.
Eu tenho um sistema com mais de 50 impressoras. Haveria um problema
aqui.
A solução é criar uma impressora burra para cada. Exemplo: touch
/dev/eng.
Eu modifiquei as entradas lp no arquivo printcap acima para levar
em conta as sugestões do Rick. Eu fiz o seguinte:
#touch /dev/eng #touch /dev/colour
Ends here--> ---Termina aqui
--------------------------%<----------------------------------
1100.. TTiirraannddoo ccóóppiiaass ddee sseegguurraannççaa ddee mmááqquuiinnaass WWiinnddoowwss eemm LLiinnuuxx
AAddaamm NNeeaatt ((aaddaammnneeaatt@@iippaaxx..ccoomm..aauu)) ggeennttiillmmeennttee ccoonnttrriibbuuiiuu ccoomm oo
sseegguuiinnttee ssccrriipptt ppaarraa ffaazzeerr ccóóppiiaass ddee sseegguurraannççaa ddee mmááqquuiinnaass WWiinnddoowwss
nnoo LLiinnuuxx,, uussaannddoo oo uuttiilliittáárriioo ssmmbbcclliieenntt.. AAddaamm ddiizz ttêê--lloo uussaaddoo ppaarraa
ffaazzeerr ccóóppiiaass ddee sseegguurraannççaa ddee mmááqquuiinnaass WWiinnddoowwss 33..xx ee NNTT nnuummaa mmááqquuiinnaa
LLiinnuuxx ccoomm ddrriivvee DDAATT SSCCSSII..
OO AAddaamm nnããoo eessttáá oorrgguullhhoossoo ddoo eessttiilloo ddee ccooddiiffiiccaaççõõaa uussaaddoo aaqquuii,, mmaass
eellee ffuunncciioonnaa.. CCoommoo qquuee ggoossttoo ddee ddiizzeerr:: ""SSee ffuunncciioonnaa ee éé eessttúúppiiddoo,,
eennttããoo nnããoo éé eessttúúppiiddoo""..
NNeessttee ssccrriipptt,, aa ssttrriinngg ''aaggnneeaa11'' éé oo nnoommee ddoo uussuuáárriioo nnaa mmááqquuiinnaa
LLiinnuuxx qquuee ffaazz aass ccóóppiiaass ddee sseegguurraannççaa ((bbaacckkuuppss))..
___________________________________________________________________
#!/bin/bash
clear
echo Inicializando ...
checkdate=`date | awk '{print $1}'`
if [ -f "~agnea1/backup-dir/backup-data" ]; then
echo "ERRO: Nenhum arquivo de configuração para hoje!"
echo "FATAL!"
exit 1
fi
if [ -d "~agnea1/backup-dir/temp" ]; then
echo "ERRO: Diretório temporário não encontrado!"
echo
echo "Tentando criar "
cd ~agnea1
cd backup-dir
mkdir temp
echo "Diretório criado - temp"
fi
if [ "$1" = "" ]; then
echo "ERRO: entre o nome da máquina (ex: cdwriter)"
exit 1
fi
if [ "$2" = "" ]; then
echo "ERRO: entre um recurso SMB (Lan Manager) (ex: work)"
exit 1
fi
if [ "$3" = "" ]; then
echo "ERRO: entre um endereço IP para $1 (ex: 130.xxx.xxx.52)"
exit 1
fi
#############################################################################
# Main Section
#
#############################################################################
cd ~agnea1/backup-dir/temp
rm -r ~agnea1/backup-dir/temp/*
cd ~agnea1/backup-dir/
case "$checkdate"
in
Mon)
echo "Fazendo Backup de Segunda-feira"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Completo"
if [ -d "~agnea1/backup-dir/Monday" ]; then
echo "Diretório Monday não encontrado ...
criando" mkdir
~agnea1/backup-dir/Monday
fi
echo "Arquivando ..."
cd ~agnea1/backup-dir/temp
tar -cf monday.tar * echo "feito ..."
rm ~agnea1/backup-dir/Monday/monday.tar
mv monday.tar ~agnea1/backup-dir/Monday
;;
Tue)
echo "Fazendo Backup de Terça-feira"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Completo"
if [ -d "~agnea1/backup-dir/Tuesday" ]; then
echo "Diretório Tuesday não encontrado ...
criando" mkdir
~agnea1/backup-dir/Tuesday
fi
echo "Arquivando ..."
cd ~agnea1/backup-dir/temp
tar -cf tuesday.tar *
echo "feito ..."
rm ~agnea1/backup-dir/Tuesday/tuesday.tar
mv tuesday.tar ~agnea1/backup-dir/Tuesday
;;
Wed)
echo "Fazendo Backup de Quarta-feira"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Completo"
if [ -d "~agnea1/backup-dir/Wednesday" ]; then
echo "Diretório Wednesday não encontrado
... criando " mkdir
~agnea1/backup-dir/Wednesday
fi
echo "Arquivando ..."
cd ~agnea1/backup-dir/temp
tar -cf wednesday.tar *
echo "feito ..."
rm ~agnea1/backup-dir/Wednesday/wednesday.tar
mv wednesday.tar ~agnea1/backup-dir/Wednesday
;;
Thu)
echo "Fazendo Backup de Quinta-feira"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Completo"
if [ -d "~agnea1/backup-dir/Thursday" ]; then
echo "Diretório Thrusday não encontrado ...
criando" mkdir
~agnea1/backup-dir/Thursday
fi
echo "Arquivando ..."
cd ~agnea1/backup-dir/temp
tar -cf thursday.tar *
echo "feito ..."
rm ~agnea1/backup-dir/Thursday/thursday.tar
mv thursday.tar ~agnea1/backup-dir/Thursday
;;
Fri)
echo "Fazendo Backup de Sexta-feira"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Completo"
if [ -d "~agnea1/backup-dir/Friday" ]; then
echo "Diretório Friday não encontrado ...
criando" mkdir
~agnea1/backup-dir/Friday
fi
echo "Arquivando ..."
cd ~agnea1/backup-dir/temp
tar -cf friday.tar *
echo "feito ..."
rm ~agnea1/backup-dir/Friday/friday.tar
mv friday.tar ~agnea1/backup-dir/Friday
;;
*)
echo "FATAL ERROR: Variável desconhecida passada para dia"
exit 1;;
esac
###########
___________________________________________________________________
1111.. CCooppyyrriigghhtt
TThhiiss HHOOWWTTOO iiss ccooppyyrriigghhtt 11999966--99 bbyy DDaavviidd WWoooodd.. IItt mmaayy bbee rreepprroodduucceedd
iinn aannyy ffoorrmm aanndd ffrreeeellyy ddiissttrriibbuutteedd aass lloonngg aass tthhee ffiillee ssttaayyss
iinnttaacctt,, iinncclluuddiinngg tthhiiss ssttaatteemmeenntt..
EEssttee CCoommoo FFaazzeerr tteemm ttooddooss ooss ddiirreeiittooss rreesseerrvvaaddooss ((ccooppyyrriigghhtt 11999966--99))
aa DDaavviidd WWoooodd.. EEllee ppooddee sseerr rreepprroodduuzziiddoo eemm qquuaallqquueerr ffoorrmmaa oouu mmeeiioo ee
lliivvrreemmeennttee ddiissttrriibbuuííddoo ddeessddee qquuee oo aarrqquuiivvoo eesstteejjaa iinnttaaccttoo,,
iinncclluuiinnddoo eessttaa ddeeccllaarraaççããoo..
1122.. AAggrraaddeecciimmeennttooss
BBrraadd MMaarrsshhaallll ((bbmmaarrsshhaallll@@pplluuggggeedd..nneett..aauu)) ee JJaassoonn PPaarrkkeerr
((jjppaarrkkeerr@@pplluuggggeedd..nneett..aauu)) ccoonnttrriibbuuiirraamm ccoomm tteemmppoo,, ppaacciiêênncciiaa,,
ccooddiiffiiccaaççããoo ee ppeessqquuiissaa..
AAddaamm NNeeaatt ((aaddaammnneeaatt@@iippaaxx..ccoomm..aauu)) ccoonnttrriibbuuiiuu ccoomm oo ssccrriipptt bbaasshh uussaaddoo
ppaarraa ssee ffaazzeerr bbaacckkuupp ddee mmááqquuiinnaass WWiinnddoowwss eemm hhoossttss LLiinnuuxx..
MMaatttthheeww FFlliinntt (()) mmee ccoonnttoouu ssoobbrree oo uussoo ddaa ooppççããoo ''iinntteerrffaacceess'' nnoo
ssmmbb..ccoonnff
OOlleegg LL.. MMaacchhuullsskkiiyy ((mmaacchhuullsskk@@sshhaaddee..mmssuu..rruu)),, JJeeffff SStteerrnn
((jjsstteerrnn@@eecclleeccttiicc..ssss..uuccii..eedduu)),, DDrr.. MMiicchhaaeell LLaannggnneerr ((llaannggnneerr@@ffiizz--
cchheemmiiee..ddee ee EErriikk RRaattcclliiffffee ((eerriikk@@ccaallddeerraa..ccoomm)) ssuuggeerriirraamm
mmooddiiffiiccaaççõõeess aa sseeççããoo CCoommppaarrttiillhhaannddoo uummaa iimmpprreessssoorraa LLiinnuuxx ccoomm
mmááqquuiinnaass WWiinnddoowwss..
AAllbbeerrttoo MMeenneeggaazzzzii ((ffllaasshh..eeggoonn@@iiooll..iitt)) ccoonnttrriibbuuiiuu ccoomm aa ccoonnffiigguurraaççããoo
ddoo MMaaggiiccFFiilltteerr qquuee hhaabbiilliittaa uummaa mmááqquuiinnaa LLiinnuuxx ccoommppaarrttiillhhaarr uummaa
iimmpprreessssoorraa WWiinnddoowwss..
AAnnddrreeaa GGiirroottttoo ((iiccaarruuss@@iinnccaa..ddeeii..uunniippdd..iitt)) ccoonnttrriibbuuiiuu ccoomm iinnúúmmeerraass
ssuuggeessttõõeess vvaalliioossaass ppoorr ttooddoo oo ddooccuummeennttoo..
OObbrriiggaaddoo,, ttaammbbéémm,, aa ttooddooss ooss ttrraadduuttoorreess iinntteerrnnaacciioonnaaiiss qquuee
ttrroouuxxeerraamm eessttee CCoommoo FFaazzeerr aaoo mmuunnddoo qquuee nnããoo ffaallaa iinnggllêêss:: TTaakkeeoo
NNaakkaannoo ((nnaakkaannoo@@aappmm..sseeiikkeeii..aacc..jjpp)),, KKllaauuss--DDiieetteerr SScchhuummaacchheerr ((KKllaauuss--
DDiieetteerr..SScchhuummaacchheerr@@ffeerrnnuunnii--hhaaggeenn..ddee)),, AAnnddrreeaa GGiirroottttoo
((iiccaarruuss@@iinnccaa..ddeeii..uunniippdd..iitt)) ee mmuuiittooss oouuttrrooss qquuee eeuu nnããoo tteennhhoo
ccoonnttaattoo..
TTrraadduuççããoo ppaarraa ppoorrttuugguuêêss ddoo BBrraassiill ffeeiittaa ppoorr:: NNiilloo NNeeyy CCoouuttiinnhhoo
MMeenneezzeess ((nnmmeenneezzeess@@nn33..ccoomm..bbrr))