Spooler Filter
DJ Art
djart at freemail.gr
Wed May 24 19:49:43 EEST 2000
Τελικά, η ιδέα για το filter του Γιάννη είναι καλή (πρίν, όμως, αλλάξω
το lpr ;-))
Έφτιαξα το παρακάτω σε gawk. Υπάρχουν ορισμένα προβλήματα:
1) Πώς θα πάρω τον user που έτρεξε το lpr ???
2) Πώς θα πάρω το Job id ??
3) optional: Πώς θα πάρω το μέγεθος του αρχείου που εκτυπώνει ??
Λοιπόν:
#!/bin/sh
gawk '
BEGIN {
for (i=1;i<=80;i++) printf "*" ;
for (i=1;i<=80;i++) printf "*" ;
for (i=1;i<=80;i++) printf "*" ;
# ναι, ξέρω, θέλει function.
printf "\n\n";
printf "User: ";
system ("finger $USER | gawk -f script");
# γελάτε, ε ?? :) gawk μέσα από gawk !!!!
# Λοιπόν ας γράψω το script και να εξηγήσω τί θέλω.
# script ==> { if (NR<=1) print $4,$5}
# Θέλω να τυπώσω το 5o πεδίο του passwd, αυτό που γράφει
# πληροφορίες/ονοματεπώνυμο κλπ. Ε, το παίρνω από το 4o/5o πεδίο του
# finger $USER
printf "\n";
printf "Job id: ";
system ("lpq | gawk -f script2");
# (άντε πάλι ;-)) Ναι, το ξέρω εκ των προτέρων πως δεν θα καταφέρω
# να πάρω το Job από το lpq, αφού δεν μένει το αναθεματισμένο εκεί
# για πολλή ώρα :-(
# script 2 ==>
#$2 == ENVIRON["USER"] {print $3, " Total Size: ", $5,$6}
printf "\n";
system ("date");
printf "\n";
}
{print $0}'
-----------------------------
Κάπου στο τέλος ξέχασα και ένα printf "\f". Λοιπόν, θέλω σε κάθε lpr
request να τυπώνεται σε μία σελίδα το εξής:
*********************************************
*********************************************
*********************************************
User: DJ Art
Job Id: 60 Total size: 45 bytes
Wed May 24 19:39:34 EEST 2000
------------------------------
Ποιό είναι τώρα το πρόβλημα:
όταν τρέξω το filter με το "χέρι", όλα δουλεύουν. Όταν το "αναλάβει" ο
lpr, φυσικά και βγάζει στο User: Idle Login αφού δεν ισχύει το $USER.
Και φυσικά, στο Job Id δεν βγάζει τίποτα, αφού δεν υπάρχει τίποτα μέσα
στο lpq.
Όταν εκτελείται το φίλτρο, εκτελείται με option -n username. Ο owner της
process του sh /var/spool/filter είναι ο username (αυτός που πρέπει
δηλαδή) και ο owner της process της gawk είναι πάλι ο σωστός. Μπορώ να
πάρω το user, από εκεί ??
Ιδέες ???
--
===========================================================
| DJ Art (aka Kyritsis Athanasios) <djart at hellug.gr> |
| Studying Electrical & Computer Engineering @ UPatras |
| Maintaining http://www.linux.gr |
| Visit http://www.geocities.com/SiliconValley/Code/6319 |
===========================================================
--
linux-greek-users mailing list -- http://lists.hellug.gr
More information about the Linux-greek-users
mailing list