Clamd client(1) Clam AntiVirus Clamd client(1)NAME
clamdscan - scan files and directories for viruses using Clam AntiVirus Daemon
SYNOPSIS
clamdscan [options] [file/directory]
DESCRIPTION
clamdscan is a clamd client which may be used as a clamscan replacement. It accepts all the options implemented in clamscan but most of
them will be ignored because its scanning abilities only depend on clamd.
OPTIONS -h, --help
Display help information and exit.
-V, --version
Print version number and exit.
-v, --verbose
Be verbose.
--quiet
Be quiet - only output error messages.
--stdout
Write all messages (except for libclamav output) to the standard output (stdout).
--config-file=FILE
Read clamd settings from FILE.
-l FILE, --log=FILE
Save the scan report to FILE.
-f FILE, --file-list=FILE
Scan files listed line by line in FILE.
-m, --multiscan
In the multiscan mode clamd will attempt to scan the directory contents in parallel using available threads. This option is espe-
cially useful on multiprocessor and multi-core systems. If you pass more than one file or directory in the command line, they are
put in a queue and sent to clamd individually. This means, that single files are always scanned by a single thread. Similarly,
clamdscan will wait for clamd to finish a directory scan (performed in multiscan mode) before sending request to scan another direc-
tory. This option can be combined with --fdpass (see below).
-z, --allmatch
After a match, continue scanning within the file for additional matches.
--remove
Remove infected files. Be careful.
--move=DIRECTORY
Move infected files into DIRECTORY.
--no-summary
Do not display summary at the end of scanning.
--reload
Request clamd to reload virus database.
--fdpass
Pass the file descriptor permissions to clamd. This is useful if clamd is running as a different user as it is faster than streaming
the file to clamd. Only available if connected to clamd via local(unix) socket.
--stream
Forces file streaming to clamd. This is generally not needed as clamdscan detects automatically if streaming is required. This
option only exists for debugging and testing purposes, in all other cases --fdpass is preferred.
EXAMPLES
(0) To scan a one file:
clamdscan file
(1) To scan a current working directory:
clamdscan
(2) To scan all files in /home:
clamdscan /home
(3) To scan a file when clamd is running as a different user:
clamdscan --fdpass ~/downloads
(4) To scan from standard input:
clamdscan - < file_to_scan
cat file_to_scan | clamdscan -
RETURN CODES
0 : No virus found.
1 : Virus(es) found.
2 : An error occured.
CREDITS
Please check the full documentation for credits.
AUTHOR
Tomasz Kojm <tkojm@clamav.net>
SEE ALSO clamd(8), clamd.conf(5), clamscan(1)ClamAV 0.98.4 February 12, 2009 Clamd client(1)
Check Out this Related Man Page
ClamAV::Client(3pm) User Contributed Perl Documentation ClamAV::Client(3pm)NAME
ClamAV::Client - A client class for the ClamAV "clamd" virus scanner daemon
VERSION
0.11
SYNOPSIS
Creating a scanner client
use ClamAV::Client;
# Try using socket options from clamd.conf, or use default socket:
my $scanner = ClamAV::Client->new();
# Use a local Unix domain socket:
my $scanner = ClamAV::Client->new(
socket_name => '/var/run/clamav/clamd.ctl'
);
# Use a TCP socket:
my $scanner = ClamAV::Client->new(
socket_host => '127.0.0.1',
socket_port => 3310
);
die("ClamAV daemon not alive")
if not defined($scanner) or not $scanner->ping();
Daemon maintenance
my $version = $scanner->version;
# Retrieve the ClamAV version string.
$scanner->reload(); # Reload the malware pattern database.
$scanner->quit(); # Terminates the ClamAV daemon.
$scanner->shutdown(); # Likewise.
Path scanning (lazy)
# Scan a single file or a whole directory structure,
# and stop at the first infected file:
my ($path, $result) = $scanner->scan_path($path);
my ($path, $result) = $scanner->scan_path(
$path, ClamAV::Client::SCAN_MODE_NORMAL );
my ($path, $result) = $scanner->scan_path(
$path, ClamAV::Client::SCAN_MODE_RAW );
Path scanning (complete)
# Scan a single file or a whole directory structure,
# and scan all files without stopping at the first infected one:
my %results = $scanner->scan_path_complete($path);
while (my ($path, $result) = each %results) { ... }
Other scanning methods
# Scan a stream, i.e. read from an I/O handle:
my $result = $scanner->scan_stream($handle);
# Scan a scalar value:
my $result = $scanner->scan_scalar($value);
DESCRIPTION
ClamAV::Client is a class acting as a client for a ClamAV "clamd" virus scanner daemon. The daemon may run locally or on a remote system
as ClamAV::Client can use both Unix domain sockets and TCP/IP sockets. The full functionality of the "clamd" client/server protocol is
supported.
Constructor
The following constructor is provided:
new(%options): RETURNS ClamAV::Client
Creates a new "ClamAV::Client" object. If no socket options are specified, first the socket options from the local "clamd.conf"
configuration file are tried, then the Unix domain socket "/var/run/clamav/clamd.ctl" is tried, then finally the TCP/IP socket at
127.0.0.1 on port 3310 is tried. If either Unix domain or TCP/IP socket options are explicitly specified, only these are used.
%options is a list of key/value pairs representing any of the following options:
socket_name
A scalar containing the absolute name of the local Unix domain socket. Defaults to '/var/run/clamav/clamd.ctl'.
socket_host
A scalar containing the name or IP address of the TCP/IP socket. Defaults to '127.0.0.1'.
socket_port
A scalar containing the port number of the TCP/IP socket. Defaults to 3310.
Instance methods
The following instance methods are provided:
Daemon maintenance
ping: RETURNS SCALAR; THROWS ClamAV::Client::Error
Returns true ('PONG') if the ClamAV daemon is alive. Throws a ClamAV::Client::Error exception otherwise.
version: RETURNS SCALAR; THROWS ClamAV::Client::Error
Returns the version string of the ClamAV daemon.
reload: RETURNS SCALAR; THROWS ClamAV::Client::Error
Instructs the ClamAV daemon to reload its malware database. Returns true if the reloading succeeds, or throws a ClamAV::Client::Error
exception otherwise.
quit: RETURNS SCALAR; THROWS ClamAV::Client::Error
shutdown: RETURNS SCALAR; THROWS ClamAV::Client::Error
Terminates the ClamAV daemon. Returns true if the termination succeeds, or throws a ClamAV::Client::Error exception otherwise.
scan_path($path): RETURNS SCALAR, SCALAR; THROWS ClamAV::Client::Error
scan_path($path, $scan_mode): RETURNS SCALAR, SCALAR; THROWS ClamAV::Client::Error
Scans a single file or a whole directory structure, and stops at the first infected file found. The specified path must be absolute.
A scan mode may be specified: a mode of ClamAV::Client::SCAN_MODE_NORMAL (which is the default) causes a normal scan ("SCAN") with
archive support enabled, a mode of ClamAV::Client::SCAN_MODE_RAW causes a raw scan with archive support disabled.
If an infected file is found, returns a list consisting of the path of the file and the name of the malware signature that matched the
file. Otherwise, returns the originally specified path and undef.
scan_path_complete($path): RETURNS HASH; THROWS ClamAV::Client::Error
Scans a single file or a whole directory structure completely, not stopping at the first infected file found. The specified path must
be absolute. Only the normal, non-raw mode is supported for complete scans by ClamAV.
Returns a hash with a list of infected files found, with the file paths as the keys and the matched malware signature names as the
values.
scan_stream($handle): RETURNS SCALAR; THROWS ClamAV::Client::Error
Scans a stream, that is, reads from an I/O handle. If the stream is found to be infected, returns the name of the matching malware
signature, undef otherwise.
scan_scalar($value): RETURNS SCALAR; THROWS ClamAV::Client::Error
Scans the value referenced by the given scalarref. If the value is found to be infected, returns the name of the matching malware
signature, undef otherwise.
SEE ALSO
The clamd and clamav man-pages.
AVAILABILITY and SUPPORT
The latest version of ClamAV::Client is available on CPAN and at http://www.mehnle.net/software/clamav-client
<http://www.mehnle.net/software/clamav-client>.
Support is usually (but not guaranteed to be) given by the author, Julian Mehnle <julian@mehnle.net>.
AUTHOR and LICENSE
ClamAV::Client is Copyright (C) 2004-2005 Julian Mehnle <julian@mehnle.net>.
ClamAV::Client is free software. You may use, modify, and distribute it under the same terms as Perl itself, i.e. under the GNU GPL or the
Artistic License.
perl v5.14.2 2012-01-17 ClamAV::Client(3pm)