Thread View: ahn.tech.linux
1 messages
1 total messages
Started by Dominic Deferia
Mon, 10 Dec 2001 03:53
sharing windows printer problem
Author: Dominic Deferia
Date: Mon, 10 Dec 2001 03:53
Date: Mon, 10 Dec 2001 03:53
186 lines
6288 bytes
6288 bytes
Hello. I have been trying to print to a windows printer share with no
success.
So far I have found out that the smbprint does not execute. I verified this
by looking at the
logfile=/tmp/smb-print.log (from smbprint script) after printing from
windows - this logfile
was not created. Also, i verified the path of smbclient and it points to
the proper directory.
I am using Debian , and samba 2.0.7.
my printcap entries are :
winprt:\
:sd=/var/spool/winspl:\ ; this exists, chmod 1777 ....winspl
:af=/var/spool/winspl/acct:\ ; this exists, chmod 1777 ....acct
:if=/usr/sbin/smbprint:\ ;this seems not to execute, verifed
the logfile from smbprint
:mx#0:\
:sh:
.................
my smb.conf
[global]
load printers = yes
printcap name = /etc/printcap
printing = bsd
[printers]
print ok = yes
printable = yes
path = /tmp/samba/spool ;chmod 777 for spool directory
gues ok = yes
browseable = no
.............
Under /var/spool/winspl directory, I have .config as
server=PAPA ; windows machine
service=HP ; printshare name
password=""
............
Everytime I print, i can see files dumped into the /var/spool/winspl
directory. I see status file which states
"winprt is ready and printing", and sometimes lock file where it has numbers
in it. The problem i guess is the
smbprint itself b/c i do not see the log file created everytime i print. I
also tried to print manually using the smbclient program by connecting to
the printer and putting in a file and it prints fine. I also did testparm
and no errors there. Also I did
testprns printername and the printer name is found. Any ideas on this
problem is highly appreciated.
> What happens when you try to run smbprint from the command line?
> Joel
I get a black screen waiting for input. I am new to linux and I still don't
know how scripts work. I tried to rename the smbprint script to a different
file name and create my own smbprint file
(executable) with command echo >> /tmp/test.txt just to see if i print from
windows if it will recreate the file but it did not. I just put back the
original script since i know it does not execute it.
>Are you trying to print from a windows PC to a printer attached to a unix
>samba server?
>If so, you don't need this smbprint script.
>Joel
I am trying to use the linux server as a gateway to print to a windows
machine that has the printer.
...........
Here is the smbprint file
#!/bin/sh
# 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.
#
# Script further modified by Richard Sharpe to fix some things.
# Get rid of the -x on the first line, and add parameters
#
# -t now causes translate to be used when sending files
#
# 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.
# Extract the directory name from the file name.
# Concat this with /.config to get the config file.
#
TRANS=0
eval acct_file=\${$#} ; i cannot comprehend these lines
spool_dir=`dirname $acct_file`
config_file=$spool_dir/.config
# Should read the following variables set in the config file:
# server
# service
# password
eval `cat $config_file`
while getopts t c; do
case $c in
t)
TRANS=1
;;
'?') # Bad parameters, ignore it ...
;;
esac
done
#
# 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.
if [ $TRANS -eq 1 ]; then
echo translate
fi
echo "print -"
cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P >>
$logfile
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads