HELIOS Base UB User manual


7 HELIOS utility programs

Note: The usage for many of the HELIOS utilities can be listed at the command line by following the command with -h, for "help".

7.1 srvmsg
The "srvmsg" program allows a UNIX user to send a message to connected HELIOS AFP, SMB, or Admin clients, to trigger the reconfiguration of a process, to set or change auditing options, or to start live auditing for a process.
Usage:
Send message
srvmsg -m [-n server | -p pid | -u user] [-M file]
Reconfigure
srvmsg -r [-n server | -p pid | -u user]
Set auditing
srvmsg -d pid [-f file][-l level] [-o options]
Live auditing
srvmsg -D pid [-l level] [-o options]
Help info
srvmsg -h
The following options can be used with "srvmsg":
-m
Send a message to one or more users connected to the host. The users are selected with the -n, -p or -u option. The number of characters in a message is limited to 255.
-M
Take the message from the specified file instead of the command line.
-r
Send a "reconfigure" message to one or more processes. The processes are selected with the -n, -p or -u option.
-d
Set auditing output options for the specified process. You must be "root" or owner of the process to use this option.
-D
Start live auditing of the specified process. The auditing output is printed to standard output. The auditing is automatically turned off when you press Ctrl-C. You must be "root" or owner of the process to use this option.

Note: The following options are used with -m and -r to specify the users/processes where to send a message. If no process is specified, the message is send to all users/processes. This can be done only by the user "root".

-n
Send message to all processes of the specified server, e.g. "afpsrv" or "pcshare".
-p
Send message to a particular process ID.
-u
Send message to a particular user. If the user is logged-on more than once, the message is sent to all processes of that user.

Note: The following option is used with -d.

-f
Induce process to send auditing output to the specified file. If the file already exists, the auditing output is appended to the file. Auditing is turned off with -f "". We recommend to use the -D option which automatically turns auditing off when Ctrl-C is pressed.

Note: The following options are used with -d and -D.

-l
Specify the auditing level, e.g. "all". If -l is not given, a default level is used.
-o
Specify the output options for auditing. Options can be "all" or a comma-separated list of the following options:
time short time stamp
fulltime long time stamp
pid process id
name process name
thread thread id
flag flag name
file source file name
line source line number
func function name
tabs tab-separated output
If -o is not given, the following default options are used: time,pid,name,func,line,flag,func.
Examples:
Example 1:
srvmsg -u neil 'Closing down all services!'
A message with the content "Closing down all services!" is sent to user "neil".
Example 2:
srvmsg -r -n pcshare
This command sends a flush/reconfigure to all "pcshare" processes. It forces "pcshare" to flush all files and to release unused resources.
Example 3:
srvmsg -D 2990
Start live auditing on process 2990. Live auditing is stopped with Ctrl-C.
7.2 logrotate
Log files, such as printer or server log files, are modified with each new login on the respective server. To maintain a certain order, they can be allocated a particular file name extension, e.g. by an ascending numbering. E.g. the printer log file which records the entries of today may be named "printer.acct", the one with yesterday's entries "printer.acct.0", and so on (see A 3.1 "Printer log file structure").
Usage:
logrotate [-n numlogs] [-m mode] [-o owner]
[-g group] logfile
It may be reasonable to determine a cycle after which the oldest log file is discarded, e.g. after one week. "logrotate" coordinates the "rotation" of the log files with the following parameters.
The following options can be used with "logrotate":
-n
Number of accumulated log files before logrotate starts the "rotation".
-m
Octal expression for the file access rights. For example, 664 means that "owner" and "group" have the right to read and write, whereas "others" are just allowed to read the file.
-o
Owner of the file.
-g
Group to which the file is allocated.
Example:
logrotate -n 6 -m 664 -o John -g helios printer.acct
7.3 locktable
The "locktable" utility shows which files are locked by the HELIOS processes. Note that you must be "root" to call the "locktable" command.
Usage:
locktable [-c]
The following option can be used with "locktable":
-c
(clean-up mode): Delete all locks in the locktable which are held by processes that do not run anymore.
Cross-platform file and record locking
An important HELIOS feature related to the protection of your files is cross-platform file and record locking. HELIOS EtherShare and PCShare coordinate together to enable this feature. Without it, Windows applications are unaware when a Mac user has a file open, and vice versa. This means that they would be able to open and modify the same file at the same time, which could result in data loss. EtherShare and PCShare prevent this by accessing the same "locktable" file which allows cross-platform file and record locking even between Macintosh and Windows workstations.

Note: Some applications do not support file locking, so it is prudent to verify this capability.

7.4 migrate
The "migrate" utility allows you to convert EtherShare and PCShare configuration files into preferences (though it is recommended that the 4.3.1 "Migrate Settings" feature of the HELIOS Installer be used instead). Beginning with EtherShare 3.1 and PCShare 3.1, all configuration settings are stored in one single file ("Preferences"). It is necessary to state the path which leads to the "old" EtherShare/PCShare (-e, -p) location in order to enable "migrate" to find the old configuration file. Additionally, the volume's character set encoding must be stated (-E MacRoman,
-P PC850, or -E SJIS). The following options specify what is to be migrated:
[volumes]
EtherShare and PCShare volumes will be migrated. If you do not want to migrate the PCShare volumes, the -p option can be omitted (-e for EtherShare).
The "afpvolumes" file is evaluated for HELIOS volumes. Here is an example for an entry in this file:
/es/volumes/ethershare:EtherShare::fixed:readwrite:
The fields are separated from each other by colons. All fields listed here are taken on:
Field Content
1 UNIX path
2 Chooser name
3 password
4 Flags1 (only fixed or changeable permitted)
5 Flags2 (readonly, nopublish, noguest, charset=)
6 Groups (separated by commas)
For PCShare volumes the "exports.pcs" file is evaluated. Here is an example for an entry in this file:
disk "pcsvol" '/data/pcsvol' public,utf8,charset=PC850
The following flags are accepted:
public
hidedotfiles
readonly
close
closefiles
utf8
charset=
[printers]
All EtherShare printers will be migrated.
The following files are evaluated for EtherShare printers ("atalk.conf", "Preferences", "/etc/printcap"). Only those printers which have an entry in "atalk.conf" and in
"/etc/printcap" are migrated. The "printcap" entry for a printer is taken on - except for the entries "lp", "if", "of", and "af". These receive HELIOS specific entries. The following spooler types are recognized in "atalk.conf":
Balance
Disk
Hold
PAP
Shared Memory
TCP
Preview
PDF
The spooler type, which was implicitly provided in "atalk.conf" through specific flags is set explicitly now in the "Preferences" by IfType=<Type>. Other flags keep their names, but are stored in the "Preferences". For example, the parameter "jobholdtime" in the following excerpt from "atalk.conf" was taken on in the "Preferences" unchanged:
atalk.conf
hold: jobholdtime=21600

Preferences
[][Printers][hold][jobholdtime]
flags=0
type=Int32
value=21600
[passwd]
The file "/usr/local/es/conf/afppasswd" is copied to
"HELIOSDIR/var/conf/passwd". This file is indispensable if the Encrypted Password Transport feature (compare 4.6 "HELIOS TCP/IP security overview") is enabled.
[interfaces]
Network interfaces entries and zones entries in "atalk.conf" are migrated. They start with the following key words:
zone
zones
if
interface
nif
ninterface
[ipaccess]
The file "/usr/local/es/conf/afpipaccess" is copied to
"HELIOSDIR/var/conf/ipaccess".
[suffixes]
The file "/usr/local/es/conf/suffixes" is copied to
"HELIOSDIR/var/conf/suffixes".
[spot]
Spot colors which have been created by HELIOS Admin are saved to the new configuration.
[browsing]
Adapts the browsing and WINS settings from PCAdmin to the preference pattern, which was introduced with CD18.
7.5 uniconv
The "uniconv" program, a new Unicode conversion utility, allows the conversion of text strings from one character set encoding to another, e.g.:
MacRoman to PC850
PC850 to UCS16 (16-bit MSB)
PC850 to UTF8
MacRoman to UTF8
SJIS to ISO8859-1
Usage:
uniconv [-v] <InputScriptName> [<OutputScriptName>]
The following options can be used with "uniconv":
-l
List all available encodings
-e
Echo all arguments as UTF8
-v
Verbose mode
-c
Convert Unicode to composite
-d
Convert Unicode to decomposite
<InputScriptName> and <OutputScriptName> can be one of the available encodings or UCS16 for 16-bit MSB Unicode. The default is UCS16.
Example:
uniconv PC850 MacRoman <pcfile.txt >macfile.txt
To list all available character set encodings use "uniconv" followed by the -l command.
7.6 socket
The "socket" command reads data from STDIN and sends it to a specified server. It also implements some functionality to measure throughput of data for message passing.
Connection can be done trough TCP or UNIX domain sockets (named pipes under windows).
Using TCP based connections <server> and <port> can be used similar to telnet. If <server> is omitted, socket connects to "localhost".
Usage:
socket [-v] [-k] [-r] [-b] [-m [-l <packlen>]
[-c <count>]] [<server>] <port>

socket [-v] -u <path> [-e] [-b] [-m [-l <packlen>]
[-c <count>]]

socket [-h]
The following options can be used with "socket":
-b
Size of receive- and sendbuffer
-c <count>
Tell the client how many loops to run the test
-k
"Keepalive" sets parameter to keep socket connection alive
-l <packlen> <packlen>
Size of a message packet the client should use for tests
-m
Tell socket to do some message passing tests (see -b and -c)
-r
Use a reserved port on client side (only "root" can do that)
-u <path> <path>
Specify a path the UNIX domain socket should be bound to (on Windows, a named pipe is used)
-e
Tell socket to discard received data
-v
Cause socket to print debugging messages about its progress - this is helpful in debugging connection
-h
Return the help info which also includes all service ports used by HELIOS software components.
Example 1:
socket -m -l 3072 -c 10000 172.16.7.155 12345
This call generates 10000 packages filled up with "A"s. Package length is set to 3072. "Socket" is using a TCP connection to server 172.16.7.155 on port 12345.
Example 2:
socket localhost 2002
This call connects to the ImageServer service port 2002. Ctrl-C aborts the connection.
7.7 swho
The "swho" command can be used to list all currently active HELIOS child server processes, together with the process ID (PID), the network address (EtherShare:
AppleTalk/IP address or name; PCShare: internet address or client name), user name and process starting time:
# swho
Server PID Address User When
pcshare 15984 tecra anyuser Thu 8:35
afpsrv 56438 192.0.62.249 anyuser Thu 8:37
termsrv 24730 192.0.62.158 anyuser Thu 12:56
termsrv 23084 192.0.62.224 anyuser Thu 15:26
pcshare 29610 Office nobody Thu 10:31
#
In this example you can see three logins via AppleTalk (one "afpsrv" and two "termsrv" connections) and two logins via "PCShare", one of them from a PC client as a guest user ("nobody"), and the other from another PC with the user name "anyuser". A separate PCShare process is started for each user login (including guest logins - user "nobody"), although a single process can support multiple drive and/or printer connections, even if they are all mounted at the same time.
The name of the PCs ("tecra" and "Office" in the above example) is only shown if the PC has been specified with name and IP address in "/etc/hosts" or in the equivalent host database, such as NIS. If the name is not specified, the internet address is shown instead of the computer name:
# swho
Server PID Address User When
pcshare 15984 192.9.200.85 anyuser Thu 8:35
afpsrv 56438 192.0.62.249 anyuser Thu 8:37
termsrv 24730 192.0.62.158 anyuser Thu 12:56
termsrv 23084 192.0.62.224 anyuser Thu 15:26
pcshare 29610 192.9.200.82 nobody Thu 10:31
#
Usage:
swho [-f stmp_file] [-c] [-n] [-p]
The following options can be used with "swho":
-c
Include an optional comment field, which shows more information about the session. PCShare servers show the name of the corresponding mounted UNIX directory or print command, EtherShare file servers ("afpsrv") show the names of the currently mounted HELIOS volumes. In addition, sleeping clients are displayed in the Comment column:
# swho -c
Address User When Comment
192.0.62.249 applein Sat 14:32
192.0.62.158 peter Wed 13:33 Apps,Helios,~peter
192.0.62.224 peter Sat 15:35
pc-max.dyn.h nobody Thu 8:42 /usr/local/helios/pub
192.0.62.252 jum Thu 8:37 Programming,Helios,~jum
192.0.62.144 anyuser Thu 12:56
192.0.62.228 anyuser Thu 15:26 Public volume SLEEPING
#
"swho" gets its information from the file "stmp", which is updated by both PCShare and EtherShare servers. "stmp" is located in the "HELIOSDIR/var/run" directory.
-n
Suppress DNS (Domain Name Service) lookup functionality. If this option is set, the network address appears as IP number instead of the name.

Note: If "swho" delivers quicker results with the -n switch set you probably have a DNS configuration problem.

-p
Clear the "HELIOSDIR/var/run/stmp" file from entries which are orphans, i.e. cannot be allocated to current processes anymore.
Related information is available from the host's current services list. In the following example, we use the "srvutil status" command (see 13.1 "srvutil") to display the services:
# srvutil status
Service Status PID When Restarts
srvsrv Running 42333 Tue 8:33
desksrv Running 42335 Tue 8:33
slpsrv Running 42336 Tue 8:33
admsrv Running 42337 Tue 8:33
afpsrv Running 42338 Tue 8:33
mailsrv Running 42339 Tue 8:33
papsrv Running 42340 Tue 8:33
pcshare Running 42341 Tue 8:33
lpd Running 42347 Tue 8:33
opisrv Running 42348 Tue 8:33
termsrv Running 42342 Tue 8:33
timesrv Running 42343 Tue 8:33
#
HELIOS file and print server functionality is all implemented in a single "helios" master process, which spawns a child process each time a user mounts volumes or print queues.
7.8 ifstat
"ifstat" is a handy utility to see the AppleTalk network settings for each of the server's network interface cards. Additionally, with the -l option specified, "ifstat -l" returns the IP number and subnet mask of the local subnet:
cd /usr/local/helios
sbin/ifstat -l
allow 192.168.123.0/255.255.255.0
These values can then be added to the default "ipaccess" list, in order to limit access to HELIOS services to only those nodes on the local subnet. The default "ipaccess" list does not provide any access restrictions to the host. See also 4.6.2 "IP Access Control Lists", and ipaccess.local in 5.8 "HELIOSDIR/var/conf".

Note: Though "ifconfig" offers more extensive network interface information, "ifstat" includes AppleTalk settings.

7.9 dt tools
About the product
This chapter describes the "dt tools", which mimic the functionality of some major UNIX commands for handling files, while maintaining the integrity of the desktop database. "dt tools" also provide access to Macintosh specific file information from a UNIX prompt.

Important: The "dt" program does not consider any file locking and can therefore also copy files in use. In order to avoid damage, consider this and make sure nobody is working concurrently on these particular files before manipulating them with "dt".

Do I need the "dt tools"?
If you access all files from a Macintosh only, you do not need to read any further. But if you need to access files which are stored in a HELIOS volume from the UNIX prompt, there are a lot of reasons for using the "dt tools".

Note: "UNIX prompt" here means any access under UNIX, e.g. any script or program (like a backup program), which accesses files stored in a HELIOS volume.

Any manipulation to a file or folder inside a HELIOS volume using ordinary UNIX commands like "cp", "mv", "rm" or other programs, will cause an inconsistency between volume information and the related desktop database. Especially restoring files from a backup will trigger such an inconsistency.
In the following sections, you will find more information on this problem, and on how the "dt tools" help avoid it.
NTFS file streams support
A file in the Windows/NTFS environment can have a certain number of file streams. File streams contain meta data such as document title, subject, author, etc., similar to the resource fork of a Macintosh file.
The "dt tools" can handle Windows NTFS file streams. On access to a file on the network that has been created in the Windows/NTFS environment, e.g. rename a file, move or remove a file on a HELIOS server, all pertinent file streams are considered as well.
Use the utilities whenever you would (usually) use any of the following UNIX commands (if either source and/or destination files/folders are located in a HELIOS volume):
You may use the "dt" utilities even if the source or destination is not located in a HELIOS volume, or if you are not sure about this. The "dt" utilities automatically select the proper mode of operation.
It is required to use the "dt" utilities together with EtherShare, PCShare and/or ImageServer. These HELIOS products have improved verification mechanisms to recognize potentially harmful configurations, and will disable access to volumes for which consistency between volume and desktop information cannot be assured. In addition, warning or error messages are logged to the system error log file, which may help you locate the cause of the problem.
What are the differences to standard UNIX
commands?
Just to help you understand the possible error messages and the specific behavior of the "dt" utilities, here are the main differences to standard UNIX commands:
Before you try and use any of the "dt" commands, you should be well familiar with the corresponding UNIX commands. If you need more information about how the "dt" utilities work and how problems arise without the utilities, please read the "Technical notes" following each command description, and 7.9.3 "Additional information".
How to install the "dt" utilities
The "dt" utilities do not require a special installation procedure.
We do not recommend to sym-link regular "cp", "mv", "rm" commands to the "dt" utilities. Although this is possible, you should verify your current and future system environment very carefully, to assure proper operation of your programs, scripts and established workflow.
Especially, you should check whether your site uses special HSM (Hierarchical Storage Management), tape robot, or RAID (Redundant Array of Independent Disks) software which may also use their own versions of these UNIX commands. Take into account that different users and script based programs may make use of different shells and environment settings.
Before getting started-
We suggest to check for each HELIOS volume the consistency between the volume information and the volume's desktop database. HELIOS Base offers a rebuild option, namely -s (scan only), which can be used for this purpose (see 7.10 "rebuild").
Simply issue rebuild -s <volume mount point> for every defined public or private HELIOS volume. Any output of this "scan" indicates a potentially harmful inconsistency between volume and desktop information. You should only continue after having re-synchronized the desktop database by means of an ordinary rebuild.
Take some time to make yourself familiar with the utilities and the way they behave inside a HELIOS volume, between different HELIOS volumes, and between non-HELIOS and HELIOS volumes.
Notes about error messages
The "dt" utilities use standard error messages starting with the program name (including the command argument), followed by the file or directory currently processed, and the error message, e.g.:
dt rm notHere
may result in the error message:
dt rm: notHere: no such file or directory
The error messages used are similar to the errors issued by the standard UNIX commands. Please note that you may encounter additional error messages regarding the resource fork or the desktop database.
In some cases the "dt" utilities may issue error messages displaying the full path of a file name instead of the passed relative one. This is due to the fact that the desktop database always needs absolute file names instead of relative ones. In this case, you may see the completely resolved (including symbolic links) absolute path name in the error message.
7.9.1 Command descriptions
General remarks
For the following command descriptions the knowledge of the functionality of the corresponding UNIX commands is assumed. Please refer to your UNIX manual if you are not familiar with the commands.
If you do not need or want to know, how the "dt" utilities operate, you only need to read the main command description for each UNIX command which is emulated by the "dt" utilities. The technical description following each command is meant for advanced users or system administrators, and explains some details or the special behavior of the respective command.
With very few exceptions, "dt" behaves identically on all HELIOS-supported platforms. Please note that, for this reason, some platform-specific options could not be implemented.
For all commands, the standard UNIX permissions apply when accessing, removing, or overwriting a file.
"dt" checks each passed argument for the following names:
.Desktop
.DeskServer
.rsrc
These files are handled implicitly by "dt" and there is no need to specify them directly. You should never move, copy, or remove these files with other commands, as e.g. the standard UNIX tools. Do not manipulate them at all.

Note: In the following, the term "volume" is used for a directory that is defined as a HELIOS volume which contains a desktop database (in contrast to a simple UNIX "directory").

Note: In the following, the term "volume root" means the top level folder of a HELIOS volume. The "HELIOS Applications" volume, for example, is by default defined to reside in "/usr/local/helios/public", which is its "volume root" directory under UNIX.

"dt" will recognize a HELIOS volume by locating its desktop database ".Desktop" file.
"dt" will recognize access to HELIOS volumes from another server only by means of available ".DeskServer" files.
"dt" may process files/folders differently, depending on whether the source/destination of the operation is inside/outside a HELIOS volume. The Macintosh Finder and the UNIX file system use different semantics, and "dt" assures that in HELIOS volumes the Macintosh semantics will be applied. The differences are mainly visible in permissions/ownership.
Symbolic links to folders will not be processed in HELIOS volumes.
"dt" will process data and resource parts of files/folders in HELIOS volumes. If no resource information exists, "dt" will be able to create at least minimum information. Especially copy or move operations may require more free space on destination file systems.
The following command modes are supported:
rm Remove a file or directory (UNIX "rm").
rmdir Remove directory (if empty) (UNIX "rmdir").
mv Move/rename a file or directory (UNIX "mv").
cp Copy a file or directory (UNIX "cp").
set Set or change the Macintosh specific file
attributes.
ls List contents of a directory including Macintosh
specific file attributes (UNIX "ls").
mkdir Create a directory (UNIX "mkdir").
touch Create a file or set its access time (UNIX
"touch").
upd Force update of HELIOS volume view.
chmod Change or assign the mode of a file (UNIX
"chmod").
chown/ Set the user and group ID of a file
chgrp (UNIX "chown", "chgrp").
idinfo Display database information for the passed ID.
iddump Display database information of all IDs for the
passed volume.
dt
If called without any argument, "dt" prints the usage line:
Usage: dt { rm | rmdir | mv | cp | set | ls | mkdir | touch | upd | chmod | chown | chgrp | idinfo | iddump }
Calling "dt" with the command argument but no further arguments, prints the usage for the specific command, e.g. calling dt rm prints:
dt rm [-firX] file...
dt rm
The "dt rm" command removes the directory entry specified by each file argument.
Usage:
dt rm [-firX] file
Options:
-f Force removing without prompting the user.
-i Prompt for confirmation for each file. If the
answer begins with y (yes), the file is deleted,
otherwise the file remains.

-r Recursively remove passed directory and its
subdirectories.

In case of symbolic links, the link itself and not the file which the link refers to is removed.
If the standard input is not a terminal, the command will operate as if the -f option was set.
Example:
dt rm a.out core
removes the directory entries: "a.out" and "core".
dt rm -rf junk
removes the directory junk and all its contents, without prompting.

Note: Missing resource forks are not reported unless the -v verbose option is set.

The volume root directory is automatically touched to announce the changes to any Macintosh that has mounted the volume.

When removing a directory using the -r option, "dt" automatically tries to remove any orphan resource forks. The volume root directory may only be removed, if this volume is not in use by any other client, either EtherShare or the "dt" utilities, otherwise a "directory not empty" error is issued.

dt rmdir
The "dt rmdir" command will remove the directory entry specified by each dirname operand, provided that this operand refers to an empty directory.
Usage:
dt rmdir [-psX] dirname
Options:
-p Allow users to remove the directory dirname and
its parent directories which become empty. A
message is printed on the standard error about
whether the whole path is removed or part of the
path remains for some reason.

-s Suppress the message printed on the standard
error when
-p is in effect.
dt mv
"dt mv" moves the selected files or directories to a destination file or directory.
Usage:
dt mv [-fiknvz] f1 f2
dt mv [-fiknvz] f1 ... fn d1
dt mv [-fiknvz] d1 d2
The three different usages are provided for the following cases:
Options:
-c Move a file from one HELIOS volume to another
HELIOS volume with a different character set
without converting to the target volume
character set or reporting error messages.

Important: If you do not use the -c option with the "dt mv" and "dt cp" commands, an error message only occurs if you copy/move files from a HELIOS volume to another. Copying/moving from a UNIX directory will not provoke any warning at all and might irritate the ".Desktop" file.

-f Move the file(s) without prompting even if it is
overwriting an existing target. Note that this is
the default if the standard input is not a terminal.

-i Prompt for confirmation for each file. If the
answer begins with y (yes), the file is moved,
otherwise it remains where it is.

-k Keep ID, try to allocate the source ID and use it
for the destination as well (see
7.9.4 "Using "dt" for backup/restore"). In case
this is impossible, you will only get a warning
if
-v is set. You can use this parameter to
preserve proper working of Macintosh aliases.

-n No resource forks if no desktop (see
"Default resource fork handling").
-v Verbose, display extended warnings.
-z Force zero ID for destination, please refer to
"Zero IDs" and
7.9.4 "Using "dt" for backup/restore".
The behavior of the different UNIX implementations differs if both, the -f option and the -i option, are set. "dt mv" uses the following rule: if both the -f option and the -i option are set, this is not considered an error; here, the -f option will override the -i option.
If you move a directory between two HELIOS volumes, "dt" cannot simply move just the directory entry. The Macintosh Finder would have to perform two steps for this operation, namely copying a folder from one volume to the other and then deleting the folder on the source volume. "dt" has a similar task to accomplish. For every file and folder within the directory to move, first the object must be moved to the destination volume and registered in the destination desktop. Then, the moved objects must be deleted from the source volume and unregistered from its desktop database.
Please note that any Macintosh files/folders to which aliases are pointing, will have lost their connection after successfully been moved between volumes. This would be the same if you used the Macintosh Finder for this operation.
If source and target directory are on different file systems, "dt mv" copies the file and deletes the original; any hard links to other files are lost.
Volume root for both source and destination, is automatically touched to announce the changes to any Macintosh that has mounted the volume.
Please note that whenever the destination is a volume, the volume specific permissions will apply, meaning that the file you have moved will automatically inherit the permissions of the directory it has been moved to.
Usually, if a file is copied to a directory without a desktop (pure UNIX directory), the file ID is set to zero. When using the -k option, the file ID is maintained (if possible).
Even though the execution bit of the data fork should be masked out (according to the permission handling implemented by "afpsrv"), this is often inconvenient to UNIX users. Therefore, any existing execution bit is preserved by default.
dt cp
"dt cp" copies the passed files or directories to a destination file or directory.
Usage:
dt cp [-finpvz] f1 f2
dt cp [-finpvz] f1 ... fn d1
dt cp -r [-finpvz] d1 ... dn-1 dn
The three different usages are provided for the following cases:
Options:
-c Copy a file from one HELIOS volume to another
HELIOS volume with a different character set
without converting to the target volume
character set or reporting error messages.

-f Copy the file(s) without prompting even if it is
overwriting an existing target. Note that this is
the default if the standard input is not a terminal.

-i Prompt for confirmation for each file. If the
answer begins with
y (yes), the file is copied,
otherwise it is not.

-r Recursively copy passed directory.
-n No resource forks if no desktop (see
"Default resource fork handling").
-p Preserve the owner and group IDs, permission
modes, modification and access time.

-v Verbose, display extended warnings.
-z Force zero ID for destination, please refer to
"Zero IDs" and
7.9.4 "Using "dt" for backup/restore".
The volume root directory for both, source and destination, is automatically touched to announce the changes to any Macintosh that has mounted the volume.
If your source does not have a resource fork, and your destination is a volume, a default resource fork is created. Please do also take into account that every default resource will require 64 bytes, thus using the minimum disk block size on the destination file system. If there is only little free disk space on the destination volume, first check whether the destination file system can store all of the files. You can roughly calculate 1K (fragment size) per file/folder. Consult your UNIX system administrator or the appropriate pages in your UNIX manual for information on how to retrieve more exact information about your file system settings.
Even though the data fork execution bit should be masked out (according to the permission handling implemented by "afpsrv"), this is often inconvenient to UNIX users. Therefore, any existing execution bit is preserved by default.
dt set
"dt set" modifies the additional file information stored in the file's resource fork. For more information about the flags and fields used here, please refer to your Macintosh documentation.
You can use HELIOS Admin to extract the creator/type information an application sets for certain icons. For a description see "Extension Mappings" in the EtherShare manual and the content of "HELIOSDIR/var/conf/suffixes".
Usage:
dt set [-t type | -c creator | -f sfile |
-L integer | -C] file ...

dt set -a[-][isrlbp] file ...

dt set -v[mini symbol name date size type label list button]
Options:
-t Set the file type for "file" to the passed value.
-c Set the file creator for "file" to the passed
value.

-f sfile Copy file type and creator from "sfile" to "file".
-L int. Set the file to number of allowed concurrent
program launches, where "integer" is the
number of launches.

-C Clear the file ID numbers in the resource
fork (set to zero) and force the "afpsrv" to
allocate new ID numbers.

-a flag, where the flag specifies the following modes:
i invisible
s system
r read only
l locked (norename nodelete)
b backup
p protected
-v flag, where the flag specifies one of the following Macintosh view modes for a folder:
mini symbol name date size type label list button
Please note that you may list these information using
"dt ls". If you need to set type or creator info with non-printable values, you may as well enter these values as octal values with a preceding backslash ("\"), and use the following escape sequences:
\b backspace
\n newline
\r carriage-return
\t tab
\f form-feed
\E escape
Please note that for both type and creator, all characters including 0 are valid. Each passed creator or type must be exactly 4 bytes long.
Example:
dt set -t "TEXT" -c "R*ch" file
sets type and creator for file using ASCII values.
dt set -c "\001\002\003\004" file
sets creator for file using octal values.
dt set -f mypic file
copies type and creator from mypic to file.
dt set -ai file
sets the invisible flag for file.
dt set -a-i file
clears the invisible flag for file.
When you call "dt set" for a file without a resource fork, a default resource fork updated with the passed parameters is created, even if the destination file is not located in a HELIOS volume.
Please note that "dt set" does not create a missing ".rsrc" directory; use "dt touch" first on the file name in order to force creation of a related ".rsrc" subdirectory where the file's resource information can be stored.
dt iddump
Each Macintosh file on a HELIOS volume has an ID number that is stored in both its resource fork and the desktop database. The "dt iddump" command outputs all file IDs of the volume in question (specify volume path) from the desktop database to "stdout".
Usage:
dt iddump volume
dt ls
For each file that is a directory, the contents of the directory is listed; for each file that is an ordinary file, the name and resource related information are listed. When no argument is given, the current directory is listed.
Usage:
dt ls [-axotTsmldi] file
Options:
-a List all entries, including those beginning with a
dot character ("."), which are normally not listed.

-x Force printing of non-printable characters for
type and creator, which are normally shown as
underscores ("_"), in the
hexadecimal "\xdd"
notation.

-B Bundle bit (can be set with "dt set -a").
-P Package bit (can be set with "dt set -a").
-I Inited (can be set with "dt set -a").
-o Force printing of non-printable characters for
type and creator, which are normally shown as
underscores ("_"), in the
octal "\ddd" notation.
-t For each file, print the Macintosh creation time.
-T For each file, print the UNIX last modification
time.

-s For each file, print the size of the data and the
resource fork.

-m Print file name stored in the desktop database
instead of UNIX name. If any difference
between these names is detected, both names are
shown. If the target directory does not have a
corresponding desktop, this option is ignored.

-l List in long format. This option is equivalent to
specifying the option
-tsi.
-d If the argument is a directory, list only its name
and not its contents.

-i For each file, print the file or directory (as stored
in the resource fork) and the parent id (as stored
in the desktop database).

This information may not be correct in case
files/folders were manipulated with UNIX
programs other than the "dt" utilities.
Use
rebuild -s to verify consistency between
volume and desktop information.

The attributes printed in the first column consist of 8 characters, and are indicated as follows:
d directory
A alias
i invisible
s system
r read only
l locked (norename nodelete)
b backup
p protected
Please note that Macintosh aliases cannot be created with the "dt" utilities. The internal structure of aliases is not documented by Apple.
Example:
dt ls /support/temp
d-i-rl--Network Trash Folder
d-------OpiPics
-------- 'XDOC' 'XPR3'mydoc
This command prints the names of all files in the passed directory "/support/temp", showing the file attributes, the type and creator for that file and its name. Please note that directories do not have any type or creator and therefore the fields are empty for directories.
Often you may wish to include more Macintosh specific information in the output. You can use the -l option for that:
dt ls -l /support/temp
Here you see the attributes, the ID, parent ID, type, creator, Macintosh date, size of the data, size of the resource fork, and the file name.
d-i-rl- 537064 3159 'MooV' 'TVOD' 03/22/02 13:43 7848 512 abc.mov
Please note that the output format (e.g. time format) depends on the current settings for the local environment.
The output will not be sorted (as it would be if you used the UNIX "ls" command).
dt mkdir
The "dt mkdir" command creates the passed directories including the corresponding resource fork and the desktop database entry.
Usage:
dt mkdir [-m mode] [-p] dir
Options:
-m mode Specify the mode to be used when
creating the directory.

-p With this option, mkdir creates "dir" by creating
all the non-existing parent directories first. The
mode given to intermediate directories will be
the difference between 777 and the bits set in
"umask".

Example:
dt mkdir -m0444 mydir
creates the directory "mydir" with the passed modes.

Note: If no mode parameter is set, the final directory is created in mode 777 considering the file mode creation mask "umask".

dt touch
The command "touch" sets the access and modification times for the passed files. A file is created if it does not already exist.
Usage:
dt touch file
Example:
dt touch myfile
dt upd
The "upd" command touches the volume directory for the passed file or directory, so that all Macintosh computers that have mounted this volume can display the changes. This may be necessary e.g. if a file is created under UNIX and the Macintosh would display the new icon only after closing and re-opening the corresponding window.
Please note that all "dt" commands automatically update any needed volumes; so this command is only required, if files are created or changed by other, non-"dt" commands. Check whether you can adjust your workflow to "dt" commands and thus avoid potentially harmful non-"dt" commands.
Usage:
dt upd file- | dir
Example:
dt upd myfile

Note: Macintosh clients only scan for changes every 10 seconds. Usually, folder information are updated within this 10 seconds period. However, depending on folder sizes, number of folders open, foreground applications, etc., this may take longer. Thus, it may take some time after issuing an "upd" command, before the changes become visible on the client. You can either click into the folder window, or close and re-open it in case the displayed information do not seem to be up-to-date. In rare situations, it may be necessary to unmount and remount the volume in question in order to let the Macintosh flush its cache entries. Make sure that you are using the latest Macintosh OS and up-to-date AppleTalk/Network drivers.

dt chmod
The "chmod" command changes the permission mode of a file. The mode may be absolute or symbolic.
Usage:
dt chmod [-fRn] absMode file
dt chmod [-fRn] [ugoa]{+|-|=}[rwxstugo]file
Options:
-f Force, do not complain if the mode change fails.
-R Recursively descend through directory
arguments.

-n Change directory only - not the files within the
directory. The default behavior of the "dt chmod"
command is as follows:

If a pure UNIX directory is changed, the changes
are applied to the directory only. Else, if a
directory in a volume is changed, the changes are
applied to the files within this directory as well
(they are not applied to subdirectories). The
-n
option makes sure that the command is always
applied to the directory only.

An absolute mode is specified using octal numbers (0-7), please see the UNIX documentation for a full description.
A symbolic mode specification is a comma-separated list (without any intervening spaces) of symbolic mode expressions of the form:
[who] operator [permissions]
In order to adjust permissions to files/directories and their related resource parts, you must own the directory in question. In case the resource directory does not match the enclosing directory's permissions, "dt chmod" cannot adjust the ".rsrc" directory's permissions. You have to log in as "root" in order to synchronize permissions of the two directories. Please refer to the UNIX documentation for a full description.
Example:
dt chmod 444 file
sets only read permission (0444) to "file".
dt chmod a=rwx,g+s file
sets read ("r"), write ("w"), and execution ("x") permission for all ("a") users, and adds group set-ID mode ("s") for groups' permissions.
dt chown
The "chown" command sets the user ID of the passed file to the new user ID specified by owner, and, optionally, the group ID to the new group.
Usage:
dt chown [-fhRn] owner[:group] file
Options:
-f Do not report errors.
-h If the file is a symbolic link, change the owner of
the symbolic link (not the owner of the file that is
referenced by the symbolic link). This option is
not supported on all platforms.

-R Recursively descend through the directory when
setting the ownership for each file.

-n Change directory only - not the files within the
directory. The default behavior of the "dt chown"
command is as follows:

If a pure UNIX directory is changed, the changes are applied to the directory only. Else, if a directory in a volume is changed, the changes are applied to the files within this directory as well (they are not applied to subdirectories).
The -n option makes sure that the dt chown command is always applied to the directory only.
owner[:group] (use "." or ":")
A user ID and an optional group ID to be assigned. Both IDs may either be specified by the numeric ID or by the corresponding user or group name.
Please note that you need the necessary access rights to change the user or group ID of a file - according to UNIX semantics, only the user id "root" is allowed to change ownership settings.
Example:
dt chown frank:support myfile
changes the owner for myfile to "frank", and the group to "support".
dt chown 100 myfile
changes the owner for myfile to the user defined with the
ID 100.

dt chgrp
The "chgrp" command sets the group ID of a given file to that of the new group.
Usage:
dt chgrp [-fhRn] group file
Options:
-f Do not report errors.
-h If the file is a symbolic link, change the group of
the symbolic link (not the group of the file that is
referenced by the symbolic link). This option is
not supported on all platforms.

-R Recursively descend through the directory when
setting the group for each file.

-n Change directory only - not the files within the
directory. The default behavior of the "dt chgrp"
command is as follows:
If a pure UNIX directory is changed, the changes
are applied to the directory only. Else, if a
directory in a volume is changed, the changes are
applied to the files within this directory as well
(they are not applied to subdirectories). The
-n
option makes sure that the command is always
applied to the directory only.

A group ID may either be specified by the numeric ID or by the corresponding group name.
Please note that you need the necessary access rights to change the group ID of a file - according to UNIX semantics, only the user id "root" is allowed to change ownership settings.
Example:
dt chgrp support myfile
changes the group to "support".
dt chgrp 100 myfile
changes the group for myfile to the group defined with the ID 100.
dt idinfo
The main purpose of this command is problem detecting. The Macintosh file, or respectively directory ID, is stored in both the file's resource fork and the desktop database. The ID stored in the resource fork may be listed by using the "dt ls" command.
The "idinfo" command may be used to display database information for the passed ID. If there is no difference between the resource data and the corresponding database entry, you should get the same information, otherwise the system administrator should issue a "rebuild" for the specific volume. You can use rebuild -s <volume root> to verify that the volume information is properly reflected in the related desktop database.
Usage:
dt idinfo [-v volume] id
Please note that each volume has its own ID scope. Therefore, you must specify the correct volume for each ID you request. If you do not specify a volume with the -v option, the current working directory is assumed:
-v Allows to specify the volume to be used, or any
file or directory inside the target volume.

Example:
dt idinfo -v /support 3159
prints the following information:
volume: '/support' id=3159 pid=2 name: 'temp'
specifying the volume detected, the ID, the parent ID for this file, and the corresponding name stored in the database.

Note: Please note that an ID detected in the database that does not have any corresponding file in that volume does not cause any problems or data loss.

dt "-X" option
For almost all of the described "dt" commands (except for "upd", "idinfo", "iddump") the -X option can be applied:
Usually, the desktop of a volume is kept open for about 30 sec. when being used by "dt" in order to avoid overhead (desktop database completely open/closed). This is because further access is to be expected. However, for certain applications it is not advisable to block the desktop for a volume that long. Hence, with the -X option the desktop close delay can be suppressed.
7.9.2 "dt" warning messages
%s: move to volume with different charset not permitted.
This warning message appears if you intend to move a file from one HELIOS volume to another, and the volumes' character sets do not match.
%s: copy to volume with different charset not permitted.
This warning message appears if you intend to copy a file from one HELIOS volume to another, and the volumes' character sets do not match.
7.9.3 Additional information
The information in this section are mainly meant for system administrators who want to integrate the "dt" utilities into custom solutions, e.g. backup scripts. You do not need these information for the simple use of the "dt" utilities
(it does not hurt, however, to read on).
Macintosh files under UNIX
Each HELIOS volume is accompanied by a corresponding desktop database, which holds additional information about each file or directory stored on this volume.
Each file or directory in a HELIOS volume consists of two parts: the "data fork" and the "resource fork".
Though invisible to the Macintosh user, both parts of a file and the corresponding information in the desktop database are handled transparently and automatically by EtherShare.
If you also use ImageServer and/or PCShare these HELIOS products will also coordinate access to shared files/folders with the HELIOS volume desktop databases.
Looking at a volume from the UNIX point of view, you will find two files: the data fork as the "normal" UNIX file, and the resource fork in a subdirectory ".rsrc" with the same name.
You will find more information about this in "Directory and file formats" in the EtherShare manual.
Default resource fork handling
Since UNIX files consist of only one part, but Macintosh files of two (see "Macintosh files under UNIX"), each pure UNIX directory ("UNIX-dir") should only have entries without a corresponding resource fork, and in a HELIOS volume ("volume-dir") each entry should have a corresponding resource fork.
If you now copy or move an entry from a "UNIX-dir" into a "volume-dir", "dt" always creates a default resource for this file. This is also the default behavior, if you move or copy a file from one "volume-dir" to the other.
If you copy an entry from a "volume-dir" into a "UNIX-dir", "dt" copies or moves the resource fork as well, even if the resource fork is not needed here. This is done in order to avoid any unintentional data loss. If you do not want to consider the resource forks here, you may use the -n option for the "mv" or "cp" command.
Local and remote desktops
The "dt" utilities do not require the desktop server to run on the UNIX server where you issue the commands, but by default the "dt" utilities try to connect to the local desktop server on the server where you issue the commands first.
If this volume is already in use (e.g. mounted as a volume on a Macintosh) the "dt" utilities try to connect to the current server which serves this volume. This could be a different server, e.g. if this volume is mounted via NFS. Source and destination are handled completely independently, e.g. a source file for a copy command may be served by a local desktop server, while the destination directory which is located in a NFS-mounted directory is served by another HELIOS desktop server.
The "dt" utilities are unable to connect to a desktop server, when the target directory is not mounted by any Macintosh and no local desktop server is running. In this case start a local desktop server or mount this volume on a Macintosh.
The "dt" utilities will do an extensive verification in order to connect to the proper desktop server. Nevertheless, please verify your environment so that no single HELIOS volume can be accessed at the same time from different HELIOS servers.

Note: In case of different desktop servers being involved in a "move directory" operation, it may be necessary to traverse through directories instead of just moving the directory entry - see "dt mv" for more details.

Mount points and auto-mounter
Double mounts (access to the same directory under different mount points, e.g.:
mount myserver:/usr/es /es
mount myserver:/usr/es /home/user1/es_copy)
This will lead to differences between volume and desktop information, resulting in inconsistencies.
Please note that you may unintentionally cause this problem by accessing an already mounted volume via auto-mounter:
dt cp /net/myserver/usr/etherhare/file1 file2
You may avoid this problem by running auto-mounter on any involved server (source and destination).
Zero IDs
On any mounted volume, the HELIOS file servers automatically detect any file which has an accompanying resource fork with a zero ID (the ID set to numerical zero) when the parent directory is opened from a Macintosh.
A file without a valid ID does not have any database entry, and therefore, a new desktop database entry is created, and the resource fork is updated using the new ID.
The "dt" utilities never create zero ID resource forks in volumes unless you force this behavior using the -z flag for the "cp" and "mv" commands.

Important: This option should only be used by system administrators - it is not intended for normal use.

7.9.4 Using "dt" for backup/restore
One main purpose of the "dt" utilities is to avoid problems when restoring data from a backup device. Here we describe how you should use the "dt" utilities for backup/restore purposes:
Backup
You may backup your data as usual directly from your volume. Please make sure that the hidden ".rsrc" directories are included. To prevent backup of incomplete data in files, make sure that the files/folders to be backed up will not be manipulated from other Macintosh or UNIX applications. Only if you intend to do a complete backup and restore of a HELIOS volume you might include the ".Desktop" file. For the period of time you need to backup and restore this volume, HELIOS must be stopped with "stop-helios".

Important: Do never restore your data directly into the destination volume!

Restore
Please create a restore directory on the same device (partition) where the destination volume resides, e.g. if you intend to restore files into e.g "/data/mypics", create a directory "/data/restore". This "restore" directory must not be defined as a volume, or even being mounted. Now restore your data using your usual restore procedure into this newly created directory "restore". Make sure that you do not restore the ".Desktop" and ".DeskServer" files.

Important: Do never remove these files (".Desktop" and ".DeskServer") from a mounted volume or manipulate them directly. This may cause not only data loss for this volume, but may cause problems for all defined volumes on the server. In case you want to backup/restore these files, make sure that EtherShare and PCShare (if you are sharing volumes) are stopped completely prior to your backup/restore operation. Only if you stop HELIOS by means of "stop-helios" and stop access from other HELIOS servers, intermediate access to these files from HELIOS processes can be prevented.

Finally move the restored files into their final destination. This procedure avoids any data loss and may be used in a mounted destination volume.
Usually, new (unused) file IDs are assigned when you copy files to a backup destination. It may, however, be sensible to keep the file ID (using the -k option). Thus, the file can be re-used with its original ID. This is especially useful if you are using Macintosh aliases pointing to these files/folders. You should use this option sensibly. In case a complete desktop rebuild has been conducted after your backup operation, aliases may point to the wrong destination.
To avoid any problems, it may be a good idea to run an integrity check for the destination volume by entering rebuild -s on the command line, before restoring any files.
7.10 rebuild

Note: If you are not familiar with desktop rebuilds, we strongly recommend to use the Rebuild Desktop- option in HELIOS Admin instead of the "rebuild" program. For volume conversions use the HELIOS utilities "convertvol" and "converthome", which are described in the EtherShare manual.

However, there is one particular situation where it may be required to use the "rebuild" program:
Resource
orphans
The rebuild program offers an option to clean (delete) resource orphans. As discussed earlier, the File server creates resource files for files created by UNIX applications when the corresponding folder is opened. However, when you delete a file directly from the host, the matching resource remains untouched. (But when you delete a file from a Macintosh, the resource file is deleted, too.)
So particularly if your HELIOS volume contains a mixture of Macintosh files and UNIX-only files, after a period of time the volume will tend to collect a number of unused resource "orphans", wasting space. Calling the "rebuild" program will automatically delete the resource orphans. You would have to set the cleanorphans preference of the "rebuild" program to FALSE to prevent the program from automatic deletion. (see 16.7 "Rebuild preference keys").
Usage:
rebuild [-2cfnopsvx] [-C oldes|utf8] [-U charset]
[-D charset] path_to_volume_root
The following options can be used with "rebuild":
-n
Output to system messages file instead of "stdout".
-o
Open ".Desktop" file only, repair if corrupted.
-f
Force ".Desktop" file to be rebuilt (force create is off if -f is not specified).
-c
Do not clean resource orphans automatically (clean orphans is default if -c is not specified).
-C
Convert volume file names from old EtherShare ":hex" to new "UTF-8".
-s
Scan desktop only (scan is off if -s is not specified).
-v
Verbose for diagnostics (verbose is off if -v is not specified).
-2
Disable 2 ID check passes (by default 2 ID check passes is active).
-x
Volume is exclusively opened for rebuilder.
-p
Output the converted file names.
-D
Change the output character set. The default is raw UTF-8.
-U
Specify character set for a volume (e.g. PC850).
Examples:
Force ".Desktop" file to be rebuilt:
rebuild -f /usr/local/helios/public
Convert volume file names from the old to the new EtherShare character set:
rebuild -C utf8 /data/my_testvolume
Read-only
volumes
In the case of CD-ROM volumes, or volumes such as magneto-optic (MO) cartridges which have been mounted with HELIOS Admin as "read-only", the desktop server first checks to see if a valid ".Desktop" file is available on the volume's root. This can be the case, for example, for MO cartridges which were previously mounted under EtherShare as "read-write", allowing a valid desktop to be created.
If a valid ".Desktop" file cannot be found (this will almost always be the case for CD-ROMs), the desktop server creates a temporary desktop file in the host's "/tmp" directory using a unique file name starting with "desksrv-". Since the files on the CD-ROM almost certainly have no resource forks in this case, the Finder will use the information that are available in the extension mapping table or show one of the about 20 generic EtherShare icons.
7.10.1 Preferences of the "rebuild" program
When it starts, the "rebuild" program first accesses the main configuration file "Preferences" to determine its configuration. 16.7 "Rebuild preference keys" lists the preferences, which can be changed if necessary by using the "prefvalue" command. See also 7.11 "prefvalue".
7.11 prefvalue
Setting and retrieving single entries in the preference database (see 16 "Preferences") can be done using the program "prefvalue" in "HELIOSDIR/bin".
Current preference value
To get the current value of a preference only, specify a key.
Usage:
prefvalue -k '<key>' [-ld[r]] [-t type] [-p PreferenceFile] [-f valuefile||value]
The preference key is the whole string containing the preference key strings which are delimited by "/" characters.

Note: Please note that key names are case-sensitive!

Example:
prefvalue -k 'Programs/pcshare/hostname'
"prefvalue" is the command and -k the preference key (here
Programs/pcshare/hostname).

Important: If the key comprises a path, the "/" characters within the path must be "marked" by preceding each with a
"\" character.

Example:
prefvalue -k 'Volumes/\/data1\/applications/AFPName'
Setting a preference
To set a preference value, specify key, type and value.
Usage:
prefvalue -k '<key>' -t <type> <value>
value is the value the preference will be set to.
type
is one of the following and may only be used when setting a preference:
Type
Value
bool
TRUE or FALSE
int (int32)
Signed (32-bit) integer value
uint (uint32)
Unsigned (32-bit) integer value
int64
Signed (64-bit) integer value
uint64
Unsigned (64-bit) integer value
double
Floating point number
ulist
List of unsigned integers, separated by comma
str
String
strlist
List of strings, separated by comma
data
The value cannot be taken from the command line and therefore requires a value file specified

Example:
prefvalue -k 'Programs/pcshare/hostname' -t str ankh
"prefvalue" is the command, -k the preference key (here
Programs/pcshare/hostname), -t the value type (here str for string), and the last argument is the value to set (ankh).
Deleting a preference
To delete a preference, specify a key and the -d option.
Example:
prefvalue -k 'Programs/pcshare/hostname' -d
"prefvalue" is the command, -k the preference key (here
Programs/pcshare/hostname), and -d the option to delete the preference.
Deleting all preferences of a key
To delete a key with all its sub-preferences, specify the -r (recursive) option.

Important: Use this command with caution! Make a backup copy of "HELIOSDIR/var/conf/Preferences" first.

Listing preferences
To list all preferences of a key, specify the -l (list) option.
Example:
prefvalue -k 'Programs/pcshare' -l
gateway
nameserver
enableproxy
enableproxyregcheck
hostname
domainname
primarydomaincontroller
enablewins
offerNTCaps
files
extendedLog
7.12 prefdump
Dumping preferences into a readable form can be done using the "prefdump" command in "HELIOSDIR/bin/".
Usage:
prefdump [-o DumpFile] [PreferencesFile]
Example:
prefdump -o 'HELIOSDIR/var/tmp/prefs.txt'
"PreferencesFile" is the binary preference database file which exports the preferences. If omitted, the default file "HELIOSDIR/var/conf/Preferences" will be taken.
If "DumpFile" is specified the preference database will be exported to that file. If omitted, the preference database will be printed to "stdout".
7.13 prefrestore
Restoring preferences which have been dumped into a readable text file (e.g. with "prefdump") back into the binary "Preferences" file can be done using the command "HELIOSDIR/bin/prefrestore".
Usage:
prefrestore [-p PreferencesFile] [-c] [DumpFiles -]
Example:
prefrestore 'HELIOSDIR/var/tmp/prefs.txt'
"PreferencesFile" is the binary preference database file which imports the preferences from the file "DumpFile". If omitted, "HELIOSDIR/var/conf/Preferences" will be taken.
With the -c option set, all old preferences are deleted and then the new preferences are loaded. Without -c option, new preferences are loaded additionally to the already existing preferences. In doing so, those with the same key are overwritten.
Not all available preferences are set by default, which means that they are not listed in the "prefdump" output, and the HELIOS products will use the given default values. When a different value is set by means of "prefvalue", this will take precedence. To revert back to the HELIOS default value, use prefvalue -k <key> -d to delete the preference entry.
7.14 mail
"mail" is a cross-platform mail client. It is based upon the HELIOS libraries, which is the reason why it works independently from the used architecture, and why it can be used very well in a scripting environment.
The program delivers the e-mail to a SMTP server. The SMTP server can be specified via options or via preferences (see -m option below).
Usage:
mail [-f sender] -t to-address [-c cc-address]
[-B bcc-address] [-s subject] [-e encoding] [-r replyto] [-m SMTPServer] [-b msgtext]
mail -h (for help info)
The following options can be used with "mail":
-f
Sender address ("From:"). If the sender address is not given, the current user name is used.
-t
Comma-separated list of recipients ("To:"). This parameter is mandatory.
-c
Comma-separated list of additional recipients ("Cc:").
-B
Comma-separated list of additional recipients whose addresses are not included in copies of the message ("Bcc:").
-s
The subject line.
-r
Address to which replies should be send ("Reply-To:").
-e
Character encoding used in the mail message. The default is UTF-8.
-b
The mail message (text). If this parameter is missing the input is read from standard input, until the input is terminated or a line with only a dot "." is read.
-m
SMTP server which is used for delivering the mail. If this option is not given, the value of the preference
"Global/Programs/SMTPHost" is used. If the preference is not defined, "mailhost" is used.
If the option -m is not set, the preference SMTPHost (16.2 "Global preference keys") is used.
In addition, SMTPHost may also contain - apart from the actual address of the SMTP server - name and password for authentication:
name:password@Serveraddress
Examples:
mail -t user@domain.com -s 'Test subject' -b 'This is a mail test.'
sends a simple test mail.
For longer mail messages it is easier to put the message text into a temporary file and send the message with
mail -t user@domain.com -s 'long test' < msgfile
Send an e-mail using an SMTP server requiring authentication:
mail -t user@domain.com -m "user:password@smtpserver.com"
7.15 authutil
See the description of the "authutil" utility in 10.2 "authutil".
7.16 hupd
The "hupd" command starts the HELIOS Update Installer, a tool which lets you conveniently install HELIOS updates. For a detailed description on updating the HELIOS software see 17 "The HELIOS Update Installer".
7.17 license
The "license" command starts a program which lets you conveniently enter software licenses in order to activate already installed HELIOS products. For a detailed description and for operation instructions of the license program see 4.4.1 "Entering a new license".
7.18 machid
A "machid" request from the command line delivers the machine ID from the host.
Example:
cd /usr/local/helios/bin
./machid
cb5323c9-6c
7.19 oiinfo
The "oiinfo" program allows you to view a list of all "OpenImage" plug-ins that are installed and available.
The program, by default, searches the directory "HELIOSDIR/lib/OpenImage/Plug-ins". Every file in this directory will be checked to find out whether it is a correct plug-in and - if so - what type of plug-in it is.
The program returns information about name and version of the respective plug-ins.
Example:
# /usr/local/helios/bin/oiinfo
Found Plugin at /usr/local/helios/lib/OpenImage/
Plug-ins/opibase.so:
Magic is HeliosOpenImage.
Version is 1.0.
Module is HeliosBase
Module description is
"HELIOS ImageServer base functionality".
Module version is 2.8.
Furthermore, for every correct plug-in, the "oiinfo" program lists all included "OpenImage" managers.
Example:
Modtoc:
Sectiontype 1:HeliosUnixFs (Helios Unix Fs mgrs)
Sectiontype 1:HeliosNativeFspec (Helios Native Fspec mgrs)
Sectiontype 1:HeliosESFspec (Helios EtherShare Fspec mgrs)
Sectiontype 1:HeliosPCSFspec (Helios PCShare Fspec mgrs)
Sectiontype 1:HeliosAdjust (Helios Adjust mgrs)
Sectiontype 1:HeliosTiff (Helios TIFF mgrs)
Sectiontype 1:HeliosJPEG (Helios JPEG mgrs)
Sectiontype 1:HeliosEPSF (Helios EPSF mgrs)
Sectiontype 1:HeliosScitexCT (Helios Scitex CT mgrs)
Sectiontype 1:HeliosAdobePhotoShop (Helios Adobe
PhotoShop mgrs)
Sectiontype 1:HeliosPICT (Helios PICT mgrs)
Sectiontype 1:HeliosMacintoshIcons (Helios
Macintosh Icon mgrs)
Sectiontype 1:HeliosAdobePath (Helios Adobe Path mgrs)
Sectiontype 1:HeliosColor (Helios simple Color mgrs)
After that, you will get a list of "OpenImage"-registered managers. This specific list provides information about which managers are available for use.
Example:
Manager type : Color
Predicate : 17530
Version : 1
Quality : 127
Registered key is
Scope : (00269) HeliosColorAll
Filesystem : (00000) *
Filespec : (00000) *
Filecreator : (00000) *
Filetype : (00000) *
Filetype Extension : (00271) RGB
Manager supports raster images.
Manager supports the following capabilities:
Capability 1:
Supports colorspace mapping:
Maps colorspace from RGB to Bilevel.
Supports image valuating.
Supports inkset change:
Accepts imagedata with any inkset.
Produces imagedata with any inkset.
Supports bpc change:
Accepts imagedata with 8 bpc.
Produces imagedata with 1 bpc.
...
Capability 4:
Supports colorspace mapping:
Maps colorspace from RGB to CMYK.
Supports image valuating.
Supports inkset change:
Accepts imagedata with any inkset.
Produces imagedata with any inkset.
Supports bpc change:
Accepts imagedata with 8 bpc.
Produces imagedata with 8 bpc.
-f (registered fonts)
With this option specified, information about all registered fonts are listed.
7.20 pstext
The "pstext" program in the "HELIOSDIR/bin" directory allows simple ASCII files and files in "nroff" format to be printed on PostScript printers. Since PostScript printers usually cannot accept print jobs consisting of "flat" ASCII data, it is normally not possible to print UNIX program listings or to print from UNIX programs that only support a simple matrix printer. The necessary conversion can be made with this program. "pstext" can also check the print job for special sequences starting with the "Esc" character, which can be used to control simple highlighting features such as bold printing, underscoring, and different fonts.
The HELIOS print server is able to differentiate "flat" ASCII data from PostScript data automatically, and calls "pstext" to convert the job accordingly. Thus, it is usually not necessary to call "pstext" manually. See also magic in 16.3 "Printer preference keys" for related information.
"pstext" is started from the command line in order to convert an existing file for printing, or from inside a host pipe in order to be able to directly print from an application without having to spool the ASCII print output to disk. "pstext" can be controlled with additional parameters in typical host style.
The following is an example of a typical command to print an ASCII file:
pstext -P lw .profile
This command converts the file ".profile" to PostScript and sends it to the printer "lw". To do this, "pstext" calls "lpr" with the specified printer name. "pstext" first looks for "lpr" in the "HELIOSDIR/bin" directory and then in the directories specified in the hosts's path. If the option -P printername is omitted, the generated PostScript code is output to the terminal for test purposes, rather than to the printer.
The following is an example of the use of "pstext" in a host pipe. It outputs the current directory to the printer "lw":
ls -l | pstext -P lw
The following example prints one entry from the UNIX manual:
nroff -man /usr/man/man1/ls.1 | pstext -P lw
The following options can be called with "pstext":
-f
Font with which the document should be printed. The default here is "Courier", because this is one of the few commonly available non-proportional fonts, which makes it particularly suitable for listings and tables.
-s
Size of the font in points. The default is 10 points. One point is 1/72 inch.
-e
Name of a PostScript language "prep" file which should be added to the start of each print job. If you do not specify the -e option, "pstext" automatically uses the internal "prep" file. This file contains definitions which are needed by "pstext". Instead of specifying an alternative "prep" file name in the command line with the -e option as above, you can set the name with the UNIX environment variable "$PSTEXT_PREP". This avoids having to specify the -e option. See the -d option below for more information about using and editing the "prep" file.
-h
Title is automatically printed on the top line of each page. If this option is omitted, "pstext" automatically prints the file name and the date on the top line.
-L
Specifies the space to the left paper edge in points. The default varies slightly from printer to printer, and is approximately 20 points.
-T
Specifies the space from the top paper edge in points. The default varies slightly from printer to printer and is approximately 14 points.
-o
Suppresses the title line. You normally want to suppress the title line if you are using the "pstext" escape interpreter, because you are probably printing with a more "intelligent" program which generates its own header in this case.
-l
Rotates the printed output by 90° (landscape mode printing).
-m
Print the date of the last modification to the file on the top line of each page, instead of the current date.
-n
Turns off the "pstext" escape interpreter. No characters are checked for control functions.
-t
Specifies the distance of each tabulator stop in units of the width of the character "M". The default is eight, i.e. the width of eight "M"s ("MMMMMMMM") for each tab stop.
-P
Name of the printer to which the file should be output. If this option is omitted, the generated PostScript code is output to the terminal ("stdout").
-C
Defines the desired line spacing in font height. The default is once the height of the used font.
-d
Can be set to dump the internal "prep" file "pstext.ps" to a file for further editing and use it with the -e option.
7.20.1 Escape Interpreter
"pstext" can check the print job for special sequences starting with the "Esc" character, which can be used to control simple highlighting features such as bold printing, underscoring and different fonts. This is particularly useful for programs that normally work with a matrix printer. With such programs, it is often possible to enter the control codes to specify particular print attributes into a configuration table.
An escape sequence for "pstext" has three parts: The first is the "Esc" character (Hex 1B), which is then followed by a command (a digit between one and six), followed by the value of the parameter within square brackets, for example:
ESC 4 [10]or in hex: 1B 34 5B 31 30 5D
Escape
sequences
The following is a list of the supported escape sequences:
ESC 1 [1]
Underline on.
ESC 1 [0]
Underline off.
ESC 2 [1]
Bold printing on.
ESC 2 [0]
Bold printing off.
ESC 3 [Helvetica]
Choose a new font, in this example "Helvetica".
ESC 3 [Courier]
Choose the standard font. "Courier" is the default font.
ESC 4 [12.5]
Choose a new font size in points, in the example 12.5 points.
ESC 5 [
gsave
newpath
50 50 moveto
80 80 lineto
closepath
stroke
grestore
]

This escape sequence example shows how to include your own PostScript code (e.g. a trademark) during the printing procedure. It is important to store and restore the current position, which is why the program should always start with "gsave" and finish with "grestore".
ESC 6 [2]
Set line spacing (in this example to 2 times the font height).
7.20.2 Umlauts and special characters
"pstext" provides facilities to allow the PostScript coding (character set translation) of the printer font to be changed, for example to allow national accented characters such as Umlauts to be printed correctly. The default character set coding in PostScript only supports a few of the available accented characters. "pstext", however, re-codes the allocation of such characters by accessing the PostScript language "prep" file that is built into EtherShare. This file contains two different, modified versions of the so-called "Standard Encoding Vector", called "decEncoding" (for DEC Ultrix computers) and "ibmEncoding" (for IBM computers) respectively. Neither of these encoding tables are complete implementations of the corresponding character sets, they have only been set up to support the German Umlaut characters. However, they can easily be extended to add other special characters, or to specify completely new codings. Note that modification of the coding requires some knowledge of the PostScript language.
To edit the default "prep" file, you have to use the "pstext" program with the -d option. This dumps the "prep" contents into a file which can then be revised. We assume that the file name of the editable "prep" file is "pstext.ps".
The two alternative encoding tables can be found at the beginning of the "pstext.ps" file. They both function by copying the standard coding and changing it to add the required special characters. The following is the code table provided for the DEC VT200 character set:
% reencode font for DEC VT200 font
/decEncoding StandardEncoding dup length array copy
dup 196 /Adieresis put
dup 228 /adieresis put
dup 220 /Udieresis put
dup 252 /udieresis put
dup 214 /Odieresis put
dup 246 /odieresis put
dup 223 /germandbls put
def
Each line of this table re-defines a single character. The decimal number (e.g. 196) is the decimal value of the character ("ASCII" value) in the input file's character set. This is followed by the PostScript name of the character. In PostScript, characters have names and not numbers. For example, "/Adieresis" is the PostScript name for "Ä".
The encoding tables are followed by a line which determines which of the two tables are used when printing. The table "decEncoding" implements a character set according to ISO 8859-1 (DEC VT200) whereas "ibmEncoding" implements a character set that corresponds to the IBM PC extended ASCII code. The following line in "pstext.ps" selects DEC encoding:
% we use the DEC encoding by default
/theEncoding decEncoding def
If you want to use IBM PC umlaut codes, change the above line as follows:
% we use the IBM encoding by default
/theEncoding ibmEncoding def
You can as well make a local copy of "pstext.ps" with a new - more individual - name, then modify this file, and specify its name with the -e option when calling "pstext", e.g.:
pstext -e myprep1.ps -P lw testfile
This command prints the file "testfile" using a new PostScript definition contained in the "prep" file "myprep1.ps".
7.21 psresolve
The "psresolve" program acts like a printer driver, e.g. "papif". Instead of sending the PostScript output to the network, "psresolve" passes all PostScript data to "stdout" which can be redirected into a file or piped to an application.
Usually, new output parameters must be set. The "psresolve" program lets you set printer interface OPI-options manually on the UNIX server for one single print job. Options specified for "psresolve" override the settings in the preference database for the specific spooler:
(psresolve [options] [SpoolerName])
In the following, we list the parameters that may be set with "psresolve" and then - at the end of this chapter - give you an example that may be used for a specific workflow.

Note: Parameters that can also be set in the HELIOS Admin dialogs are marked by the phrase "Compare HELIOS Admin!".

7.21.1 List of parameters
Printer interface related parameters are entered as command line options using the -o Preference=Value syntax.
OpiEnabled <boolean:FALSE>
This option turns OPI functionality on or off. If it is set to TRUE, OPI image replacement is enabled.
ImageSearchPaths <string list:None>
Specifies a list of path names where to search high-resolution images during image replacement, in case they cannot be found in the standard locations.
ImageIDsearch <boolean:TRUE>
This parameter - if it is set to TRUE - enables the use of the EtherShare desktop database to locate moved image files.
PrintDraft <boolean:FALSE>
This parameter - if it is set to FALSE - ensures that layout images are replaced with the corresponding high-resolution images for output. Otherwise, the layouts will be printed.
CheckFonts <boolean:TRUE>
If this parameter is set to TRUE all fonts used in the document will be checked before printing. Every missing font will be reported and this will stop the print job.
CheckImages <boolean:TRUE>
If this parameter is set to TRUE all images placed in the document will be checked before printing. Every missing image will be reported and this will stop the print job.
CheckICCProfiles <boolean:TRUE>
Specifies whether existence of ICC-image-profiles has to be verified before printing.
CompatCheck <boolean:TRUE>
Specifies whether special PostScript setup has to be included to avoid application specific problems during printout. This is necessary for FreeHand 3.1, PageMaker 5 and QuarkXPress 3.0.
ResolveAll <boolean:FALSE>
If this parameter is set to TRUE, all images will be replaced during printout. Otherwise only layout images are resolved.
KeepInfo <boolean:TRUE>
Specifies whether in case of resolving an already resolved PostScript job, the use of fonts and other resources should still be accounted.
DefaultPrinterProfile <string:None>
This parameter specifies the path name of the default ICC-profile describing the printing device. Can be overridden using the HELIOS ColorSync 2 XT.
DefaultProofProfile <string:None>
This parameter specifies the path name of the default ICC-profile describing the proof device. The string will only be recognized if a default printer profile is set. Can be overridden using the HELIOS ColorSync 2 XT.
DownSampling <boolean:FALSE>
This option - if it is set to TRUE - allows downsampling of images to a given output resolution. The value that has to be used for printing is specified by the Resolution parameter below.
FixedSampling <boolean:FALSE>
This option allows to fix the downsampling resolution (see Resolution parameter below) to the given value. Usually, if this parameter is set to FALSE, the output resolution is adjusted to the image resolution if the image resolution is smaller. When setting this parameter to TRUE the printer interfaces will use the given Resolution as is for downsampling. This may cause upsampling of images with resolutions smaller than the given one. This parameter is only meaningful when setting the DownSampling parameter to TRUE.
FastDownSampling <boolean:FALSE>
This option controls the downsampling algorithm. By default, a bilinear algorithm is used. If you set this option to TRUE you switch to a fast picking algorithm. This parameter is only meaningful when setting the DownSampling parameter to TRUE.
Resolution <double:0.0>
This option controls the resolution of downsampled images. Zero induces the software to use the default resolution of the printing device as specified in the queue's PPD file. This parameter is only meaningful when setting the
DownSampling parameter to TRUE.
ProcessColorspace <string:"CMYK">
This option sets the color space used while printing separations. The default is CMYK for a four color print process. Spot colors are not affected by this parameter. Valid color spaces are "CMYK" and "Multi". If you set the string to "Multi" you have to define the names and order of the color components. Furthermore, the usage of the "Multi" color space requires the use of ICC profiles. For (future) ICC profiles that include the names of the color components, this option will become obsolete. Please note that the value you choose for this option can be overridden by the printer profile you have selected using ColorSync 2 XT or using the
DefaultPrinterProfile option.
ProcessInks <string list:"Cyan","Magenta","Yellow","Black">
This option controls, together with the ProcessColorspace option, the names of the process inks used for separations. Spot colors are not affected by this parameter.
CompositeColorspace <string:"CMYK">
This option sets the color space used while printing composite. The default is CMYK. Setting this option to None causes all color images in a print job to be kept and printed in their original color space. This applies to CMYK,
CIE- Lab and RGB images only. Valid strings are "CMYK", "RGB", and "CIELab". Please note that the value you choose for this option can be overridden by the printer profile you have selected using ColorSync 2 XT or using the DefaultPrinterProfile option.
CompressPostScript <string:None>
This option selects a compression mode for images while being printed. CCITT Group 4, JPEG (Low to Max.), ZIP, and Compress are currently supported.
MaxLowResolution <double:72.0>
When printing layout images, ImageServer is able to scale down a high-resolution image to layout quality on the fly if the layout image cannot be found. This parameter controls the maximum resolution used for printing these transformed images.
IgnoreMissingLowRes <boolean:TRUE>
Use this parameter to specify whether non-existing layout images should be ignored when printing layout quality.
TemporaryTagging <boolean:TRUE>
This parameter enables the use of the ICC info files while printing images. If it is set to TRUE, every non-tagged image will be temporarily tagged during printing provided that the ICC info file specifies tagging for that kind of image.
IgnoreUntagged <boolean:TRUE>
This parameter controls whether non-tagged images should be ignored when printing to an ICC color matched queue.
ScitexApr <boolean:FALSE>
This parameter - if it is set to TRUE - tells ImageServer not to resolve OPI comments if printing a PSImage file to an APR-aware RIP.

Note: The parameters which are described in the following two paragraphs will usually be specified when setting up EtherShare. They may, however, be relevant to ImageServer as well and can therefore be set as preferences, too.

IgnoreResolveOpts, IgnoreProcsetResolveOpt, IgnoreFontResolveOpt,
IgnoreIncludeResolveOpt and IgnoreOpiResolveOpt <boolean:FALSE>
When printing from an EtherShare spooler to a second EtherShare spooler, print jobs will usually not be resolved a second time. Specifying one or more of these options for the second spooler re-enables resolving of fonts, procsets, included files or OPI comments (IgnoreOpiResolveOpt).
ExtendedInfo <boolean:TRUE>
Enables explanatory accounting. The accounting file will e.g. include the OPI image replacement list.
7.21.2 Example
Imagine you want to print a document using the
CompressPostScript option. For that purpose, you have to change the default setting for this particular print job using the "psresolve" program. The complete procedure is described below:
First of all, set up two different printer queues using HELIOS Admin. One queue (e.g. "real_printing") is to be used for printing to an output device and the other one (e.g. "print_to_disk") is to be used for printing to a PostScript file (spool only).
Make sure that Spool only has been activated for the "print_to_disk" queue (Printer menu) and then print to this queue from your layout application.
Then, on your UNIX server, change to the spool directory that now contains your print job
(e.g. "/usr2/spool/print_to_disk"):
# cd /usr2/spool/print_to_disk
Start the "psresolve" program, enter the parameters you want to use, and specify the queue name, the input file name (e.g. "your_print_job") and the output file name:
# /usr/local/helios/bin/psresolve -o
CompressPostScript=Compress print_to_disk
<your_print_job >your_print_job_output
Finally, you may send the file "your_print_job_output" to your Spool & Print printer queue for output:
# /usr/local/helios/bin/
lpr -Preal_printing your_print_job_output
Please note that the "real_printing" printer queue will not resolve your print job once again. The job will be printed according to the settings that had been specified for the "print_to_disk" queue using HELIOS Admin and/or according to the parameters set by the psresolve command line.
7.22 start-helios
The "start-helios" command starts all available HELIOS services on the host (see 4.5 "Starting/Stopping HELIOS Services manually").
7.23 stop-helios
The "stop-helios" command stops all HELIOS services on the host 5 minutes after entering the command. "stop-helios now" stops the services immediately, the -g parameter lets you specify the time until shutdown in minutes, and -m allows to issue a shutdown message (see 4.5 "Starting/Stopping HELIOS Services manually").
7.24 uwhat
The "uwhat" command displays the software version number of a program.
Example:
Finding out the software version number of "swho":
cd /usr/local/helios/bin
./uwhat swho
swho 1.6.3
Or finding out the software version number of "afpsrv":
cd /usr/local/helios
bin/uwhat sbin/afpsrv
sbin/afpsrv 4.0.0
7.25 lscom
This command lists all HELIOS COM (Common Object Model) plug-ins which have been loaded by the HELIOS server. It helps verify available COM plug-ins and to monitor their status.
Typical plug-ins which are loaded by the HELIOS server are:
7.26 psyslog
This is a tool to browse syslog entries. Records will be read from syslog files which are defined in "/etc/syslog.conf". All records will be mixed to one list so that records appear in chronological order.

Note: You must have appropriate access rights to the syslog files specified in "/etc/syslog.conf". Otherwise "psyslog" will issue an error message on the command line.

Usage:
psyslog [[-d <date>] [-f]] (print syslog)
psyslog -t <tag> [-p <pid>] message ... (post to syslog)
psyslog -h (for help info) (print help)
The following options can be called with "psyslog":
-d <date>
<date> specifies a date to start listing entries from. Using all prints all entries from the beginning.
-f
Causes "psyslog" not to stop when end of syslog file is reached, but to wait for additional data to be appended instead.
-t <tag>
Post a message to syslog and exit. <tag> is used as identifier prefixing the message. Normally the program name is used here.
-p <pid>
Write the given process ID in brackets behind the tag.
-h
Show this help.
Examples:
Example 1:
psyslog -d '13.01.2005 12:00:00'
List all entries in syslog files which are younger than "13.01.2005 12:00:00".
Example 2:
psyslog -f
Continuously read syslog entries until "Ctrl-C" is issued. Output contains entries since "0:00:00" of the current day.
Example 3:
psyslog -d all
Print all entries found in log files.
Example 4:
psyslog -t myscript.pl Converting of image failed
Post "myscript.pl: Converting of image failed" to syslog.
7.27 htar
"htar" is a HELIOS implementation of a tar file compatible archive program. It is designed to handle specific features like Unicode file names, Macintosh Resource and Finder information, creation dates, Windows file streams, and attributes. "htar" allows moving files between UNIX and Windows and overcomes UNIX tar limitations.
On Windows, file streams and "Services for Macintosh" (SfM) are used. "dir/file:stream:type" is stored in the archive as "dir/file" and "dir/.rsrc/file:stream:type".
Usage:
htar [-c|-t|-x] [-z|-Z] [-v] [-k] [-C <dir>]
[-f <file>] [<file|dir> ...]
htar -h (for help info)
The following options can be called with "htar":
-c
Create archive from the given files and directories.
-t
Test archive. "htar" can only test the entire archive.
-x
Extract archive. "htar" can only extract all files in a tar archive.
-f <file>
Use tar archive in <file>. If this option is omitted or given as "-", "htar" reads from from standard input (test/extract) or writes to standard output (create).
-v
Be more verbose: print file names when creating or extracting an archive, print detailed information on files when testing an archive.
-z
Create/read "gzip" compressed tar archive.
-Z
Create/read "compress" compressed tar archive.
-C <dir>
Change to <dir> before creating/reading an archive.
-k
Keep Macintosh file IDs when extracting. Use this option with caution because the file IDs may conflict with file IDs of existing files on a HELIOS volume and "htar" does not add these IDs to the desktop database.

Note: Use HELIOS "xtar" to handle HFS Macintosh files. Details are given at:
http://www.helios.de/news/news03/N_06_03.phtml

7.28 printerlog
"printerlog" is a tool to list the "printer.acct" files in "HELIOSDIR/var/adm" in a human readable form.
Usage:
printerlog [-p][-v][-h][-a|-1..7] print logfile
The following options can be called with "printerlog":
-p
Repeat printing a headline every 60 entries.
-v
Verbose output print all information recorded.
-N
N can be a value between 1 and 7 which represents the log file "N" days ago.
-a
Print out all files.
-h
Show this help.
Examples:
Print out the current log file with all information:
# printerlog -v
Print out the log file 4 days ago, writing a headline every 60 entries:
# printerlog -p -4
7.29 serverlog
"serverlog" is a tool to browse the "server.acct" files in "HELIOSDIR/var/adm" in a human readable form.
Usage:
serverlog [-p][-v][-h][-a|-1..7] print logfile
The following options can be called with "htar":
-p
Repeat printing a headline every 60 entries.
-N
N can be a value between 1 and 7 which represents the log file "N" days ago.
-a
Print out all files.
-h
Show this help.
Example:
Print out the current log file:
serverlog

© 2005 HELIOS Software GmbH