postconf -d shows the default values
postconf - n shows current values
Pour changer le message_size_limit par exemple :
postconf -e 'message_size_limit = 51200000'
Don't forget to restart postfix server
Blog dans lequel je note comme aide-mémoire les trucs et astuces que j'ai utilisés pour configurer selon mes besoins mes machines sous Linux Ubuntu Raspbian Macosx Windows.
postconf -d shows the default values
postconf - n shows current values
Pour changer le message_size_limit par exemple :
postconf -e 'message_size_limit = 51200000'
Don't forget to restart postfix server
Pour pouvoir imprimer des textes non encodés en UTF-8 avec cups et le filter texttops
Il faut wrapper texttops dans ce genre de script qui se charge de faire la conversion de codage
http://www.srz.de/Members/bla/cups/filter/texttops%20wrapper/texttops
#!/usr/bin/perl -w
# texttops.pl wrapper script for the texttops filter
# ====================================================
# COpyright (C) 2007 Helge Blischke <h.blischke@acm.org>
#
# 1.00 - 2007-12-29/Bl
# initial implementation
# 1.01 - 2007-12-31/Bl
# Options and sugaring
#
# Description:
# ------------
# This script tries to determine the characterset used,
# decodes the input to the internal UTF-8 and writes
# the UTF-8 data to the original texttops filter.
use Encode;
use Encode::Guess;
#
# Configuration data, edit as needed
# -------------------------------------------------------------------------------
$texttops = $ENV{CUPS_SERVERBIN} . '/filter/orig.texttops';
@suspects = qw(iso-8859-15 iso-8859-1); # to try one by one
# -------------------------------------------------------------------------------
if (scalar @ARGV == 0)
{
die "Usage: texttops.pl jobid username title copies options [file]\n";
}
#
# Get the command line parameters
#
$jobid = $username = $title = $copies = undef;
$jobid = shift; # Job ID
$username = shift; # Job requesting user name
$title = shift; # Job title
$copies = shift; # Number of requested copies
$options = shift; # Textual representation of job attributes
$textfile = shift; # Pathname of input text file
#
# Determine from where to read
#
if (defined $textfile)
{
open (FILI, "<:raw", "$textfile") || die "ERROR: $textfile: $!\n";
}
else
{
open (FILI, "<:raw", "&STDIN") || die "ERROR: STDIN: $!\n";
}
#
# First, check the command line options
#
@opts = split (/\s+/, $options);
$charset = undef;
$buffer = undef;
foreach my $opt (@opts)
{
if ($opt =~ /encoding=(\S+)/)
{
$charset = $1;
#$charset =~ tr/A-Z/a-z/; # make lower case
if ($charset =~ /^lang/) # language
{
eval
{
require I18N::Langinfo;
I18N::Langinfo->import(qw(langinfo CODESET));
$charset = langinfo (CODESET ());
};
die "ERROR: $@\n" if ($@); # undefined language
}
else
{
$codec = find_encoding ($charset);
die "ERROR: $charset is not a valid encoding name: $codec\n" unless ref $codec;
}
warn "NOTICE: characterset = $charset\n";
last;
}
}
if (! defined $charset)
{
#
# Read the first buffer and determine the encoding
#
$buffer = '';
$codec = '';
$bytes = read (FILI, $buffer, 16384) || die "ERROR: read input: $!\n";
foreach my $name (@suspects)
{
my $temp = find_encoding ($name);
if (! ref $temp)
{
warn "ERROR: Unknown encoding $name\n";
next;
}
Encode::Guess->set_suspects($name);
$codec = guess_encoding ($buffer);
last if (ref $codec);
warn "NOTICE: $coded\n";
}
ref ($codec) || die "ERROR: Cannot guess: $codec\n";
$charset = $codec->name; # charset name
warn "NOTICE: guessed characterset = $charset\n";
}
#
# Set locale params fore the original texttops filter
#
$language = $ENV{LANG};
$lc_all = $ENV{LC_ALL};
$lc_all = $language if (! defined $lc_all);
$ENV{LC_ALL} = $lc_all;
#
# Open the pipe to the original filter
#
open (FILO, "|$texttops $jobid $username \'$title\' $copies \"$options\"")
|| die "ERROR: Cannot launch original filter: $!\n";
binmode (FILO, ":utf8"); # mark output as UTF-8
if (defined $charset)
{
if (defined $buffer)
{
my $outbuf = $codec->decode ($buffer); # decode the first input buffer
print FILO $outbuf;
}
binmode (FILI, ":encoding($charset)");
}
#
# Now copy the rest of the input over to the original filter
#
while (($bytes = read (FILI, $buffer, 16384)) > 0)
{
print FILO $buffer;
}
close (FILI);
close (FILO);
exit 0;
Pour créer une queue lpd avec CUPS il faut utiliser un petit daemon auxiliaire lancé par inetd
pour ne pas imprimer la banner il faut ajouter l'option -o job-sheets=none
En fait je suppose que l'on peut utiliser les options de lpr (voir plus bas)
CUPS-LPD
cups-lpd(8)
Name
cups-lpd - receive print jobs and report printer status to lpd clients
Synopsis
cups-lpd [ -h hostname[:port] ] [ -n ] [ -o option=value ]
Description
cups-lpd is the CUPS Line Printer Daemon ("LPD") mini-server that supports legacy client systems that use the LPD protocol. cups-lpd does not act as a standalone network daemon but instead operates using the Internet "super-server" inetd(8) or xinetd(8). If you are using inetd, add the following line to the inetd.conf file to enable the cups-lpd mini-server:
printer stream tcp nowait lp /usr/libexec/cups/daemon/cups-lpd cups-lpd \
-o document-format=application/octet-stream
Note: If you are using Solaris 10 or higher, you must run the inetdconv(1m) program to register the changes to the inetd.conf file.
If you are using the newer xinetd(8) daemon, create a file named /etc/xinetd.d/cups containing the following lines:
service printer
{
socket_type = stream
protocol = tcp
wait = no
user = lp
group = sys
passenv =
server = /usr/libexec/cups/daemon/cups-lpd
server_args = -o document-format=application/octet-stream
}
Options
-h hostname[:port]
Sets the CUPS server (and port) to use.
-n
Disables reverse address lookups; normally cups-lpd will try to discover the hostname of the client via a reverse DNS lookup.
-o name=value
Inserts options for all print queues. Most often this is used to disable the "l" filter so that remote print jobs are filtered as needed for printing; the examples in the previous section set the "document-format" option to "application/octet-stream" which forces autodetection of the print file format.
Performance
cups-lpd performs well with small numbers of clients and printers. However, since a new process is created for each connection and since each process must query the printing system before each job submission, it does not scale to larger configurations. We highly recommend that large configurations use the native IPP support provided by CUPS instead.
Security
cups-lpd currently does not perform any access control based on the settings in cupsd.conf(5) or in the hosts.allow(5) or hosts.deny(5) files used by TCP wrappers. Therefore, running cups-lpd on your server will allow any computer on your network (and perhaps the entire Internet) to print to your server.
While xinetd has built-in access control support, you should use the TCP wrappers package with inetd to limit access to only those computers that should be able to print through your server.
cups-lpd is not enabled by the standard CUPS distribution. Please consult with your operating system vendor to determine whether it is enabled on your system.
Compatibility
cups-lpd does not enforce the restricted source port number specified in RFC 1179, as using restricted ports does not prevent users from submitting print jobs. While this behavior is different than standard Berkeley LPD implementations, it should not affect normal client operations.
The output of the status requests follows RFC 2569, Mapping between LPD and IPP Protocols. Since many LPD implementations stray from this definition, remote status reporting to LPD clients may be unreliable.
LPR OPTIONS
The following options are recognized by lpr:
-E
Forces encryption when connecting to the server.
-H server[:port]
Specifies an alternate server.
-C "name"
-J "name"
-T "name"
Sets the job name.
-P destination[/instance]
Prints files to the named printer.
-U username
Specifies an alternate username.
-# copies
Sets the number of copies to print from 1 to 100.
-h
Disables banner printing. This option is equivalent to "-o job-sheets=none".
-l
Specifies that the print file is already formatted for the destination and should be sent without filtering. This option is equivalent to "-o raw".
-m
Send an email on job completion.
-o option[=value]
Sets a job option.
-p
Specifies that the print file should be formatted with a shaded header with the date, time, job name, and page number. This option is equivalent to "-o prettyprint" and is only useful when printing text files.
-q
Hold job for printing.
-r
Specifies that the named print files should be deleted after printing them.
Compatibility
The "c", "d", "f", "g", "i", "n", "t", "v", and "w" options are not supported by CUPS and produce a warning message if used.
Pour ne pas avoir la création du fichier /var/vm/sleepimage et l'erreur PC EFI v9 chameleon au boot à propos de la corruption du fichier image, utiliser
# pmset -a hibernatemode 0
Man page de pmset
PMSET(1) BSD General Commands Manual PMSET(1)
NAME
pmset -- manipulate power management settings
SYNOPSIS
pmset [-a | -b | -c | -u] [displaysleep minutes] [disksleep minutes] [sleep minutes] [womp 1/0] [ring 1/0] [autorestart 1/0] [dps 1/0] [reduce 1/0] [powerbutton 1/0] [lidwake 1/0]
[acwake 1/0] [lessbright 1/0] [halfdim 1/0] [sms 1/0] [boot]
pmset -u [haltlevel percent] [haltafter minutes] [haltremain minutes]
pmset -g [custom | live | cap | sched | ups | ps | pslog | rawlog]
pmset schedule [cancel] type date+time [owner]
pmset repeat cancel
pmset repeat type weekdays time
pmset [touch | sleepnow | noidle | lock]
DESCRIPTION
pmset changes and reads power management settings such as idle sleep timing, wake on administrative access, automatic restart on power loss, etc.
SETTING
The -a, -b, -c, -u flags determine whether the settings apply to battery ( -b ), charger (wall power) ( -c ), UPS ( -u ) or all ( -a ).
Use a minutes argument of 0 to set the idle time to never.
pmset must be run as root in order to modify any settings.
The boot argument tells power management that system bootup is complete. Loginwindow handles this on a normal Mac OS X system.
GETTING
-g (with no argument) will display the settings currently in use.
-g live will also display the settings currently in use.
-g custom will display custom settings for all power sources, although these settings may not currently be in use; a pre-set settings profile may be active instead.
-g cap will display which power management features the machine supports.
-g sched will display scheduled startup/wake and shutdown/sleep events.
-g ups will display UPS emergency thresholds.
-g ps will display status of batteries and UPSs.
-g pslog will display an ongoing log of power source (battery and UPS) state.
-g rawlog will display an ongoing log of battery state as read directly from battery.
-g profiles will display the settings associated with each Energy Saver profile.
ARGUMENTS
displaysleep - display sleep timer; replaces 'dim' argument in 10.4 (value in minutes, or 0 to disable)
disksleep - disk spindown timer; replaces 'spindown' argument in 10.4 (value in minutes, or 0 to disable)
sleep - system sleep timer (value in minutes, or 0 to disable)
womp - wake on ethernet magic packet (value = 0/1)
ring - wake on modem ring (value = 0/1)
autorestart - automatic restart on power loss (value = 0/1)
dps - dynamically change processor speed based on load (value = 0/1)
reduce - reduce processor speed (value = 0/1)
powerbutton - sleep the machine when power button is pressed (value = 0/1)
lidwake - wake the machine when the laptop lid (or clamshell) is opened (value = 0/1)
acwake - wake the machine when power source (AC/battery) is changed (value = 0/1)
lessbright - slightly turn down display brightness when switching to this power source (value = 0/1)
halfdim - display sleep will use an intermediate half-brightness state between full brightness and fully off (value = 0/1)
sms - use Sudden Motion Sensor to park disk heads on sudden changes in G force (value = 0/1)
hibernatemode - change hibernation mode. Please use caution. (value = integer) hibernatefile - change hibernation image file location. Image may only be located on the root volume. Please use caution. (value = path) ttyskeepawake - prevent idle system sleep when any tty (e.g. remote login session) is 'active'. A tty is 'inactive' only when its idle time exceeds the system sleep timer. (value = 0/1)Pour copier un répertoire avec rsync et en faire la synchronisation s'il existe déjà j'utilise rsync avec ces options
%rsync -au --delete dir_source dir_destination
-a archive mode, equivalent to -rlptgoD
-u, --update update only (don't overwrite newer files)
--delete delete files that don't exist on sender
le -u sert surtout à préserver les fichiers qui auraient été modifié dans le dossier de destination (ce qui en principe ne se produit pas... mais les principes...)
--delete permet de nettoyer le dir_destination des fichiers qui ne sont plus dans le dir_source.
ATTENTION --delete est une option DANGEREUSE !
Bien s'assurer de faire la copie dans le bon répertoire sans quoi tout le répertoire de destination sera effacé ainsi que les sous-répertoires.
Pour inhiber une option incluse dans a faire --no-Option
par exemple par de chown et chgrp --no-o --no-g ce qui évite d'avoir un message d'erreur quand le fichier de destination est mounté avec un owner et pas de droit pour changer de owner tandis que rsync tourne en root.
Pour autoriser le telnetd et sshd depuis l'extérieur
On autorise de façon limitée dans le allow et on interdit tout le reste dans deny. Ce qui ne matche pas dans allow est bloqué.
hosts.allow
telnetd:ALL
sshd:ALL
ALL: LOCAL 10.0.1.0/24
hosts.deny
ALL: ALL
Se souvenir que sans fichier le contrôle d'accès est off
ACCESS CONTROL FILES
The access control software consults two files. The search stops at the first match:
· Access will be granted when a (daemon,client) pair matches an entry in the /etc/hosts.allow file.
· Otherwise, access will be denied when a (daemon,client) pair matches an entry in the /etc/hosts.deny file.
· Otherwise, access will be granted.
Pour installer une version plus complète de vim qui supporte la coloration syntaxique :
apt-get install vim
Editer ensuite
/etc/vimrc
syntax on
set visualbell pour ne pas avoir le bip sur à chaque double esc, etc.