1、命令简介
postalias:用于 Postfix 邮件服务器的命令行工具,用于创建或更新 Postfix 的邮件别名数据库文件。邮件别名允许您将一个或多个邮件地址映射到另一个邮件地址或本地文件中的邮件列表。
2、命令语法
postalias [-Nfinoprsvw] [-c config_dir] [-d key] [-q key] [file_type:]file_name ...
3、命令描述
postalias(1) 命令用于创建或查询一个或多个 Postfix 别名数据库,或更新已存在的数据库。输入和输出文件格式预期与 Sendmail 版本 8 兼容,并预期适用于作为 NIS 别名映射的用途。
如果结果文件不存在,它们将以与源文件相同的组和其他读取权限创建。
在数据库更新正在进行时,信号传递被延迟,同时会在整个数据库上放置一个排他的、咨询性质的锁,以避免在观察程序中出现意外情况。
Postfix 别名输入文件的格式在 aliases(5) 中有描述。
默认情况下,查找键会映射为小写字母,以使查找不区分大小写;从 Postfix 2.3 版本开始,这种大小写折叠仅在查找键为固定大小写字符串的表中发生,例如 btree:
、dbm:
或 hash:
。在早期版本中,查找键即使在可以匹配大写和小写文本的表中也会被折叠,例如 regexp:
和 pcre:
。这导致了 $number 替换时信息的丢失。
4、命令选项
选项 | 描述 |
-c config_dir | 使用指定目录中的 main.cf 配置文件, 而不是默认的配置目录。 |
-d key | 在指定的映射中查找 key 并删除一个条目。 当找到请求的信息时,退出状态为零。 如果指定了键值 当找到至少一个请求的键时,退出状态为零。 |
-f | 创建或查询表时,不将查找键折叠为小写字母。 |
-i | 增量模式。从标准输入中读取条目, 不截断现有数据库。默认情况下, postalias(1)会从 file_name 中的条目创建一个新数据库。 |
-N | 包括终止查找键和值的空字符。默认情况下, postalias(1)执行主机操作系统的默认操作。 |
-n | 不包括终止查找键和值的空字符。默认情况下, postalias(1)执行主机操作系统的默认操作。 |
-o | 处理非根输入文件时,不释放根权限。默认情况下, postalias(1)会放弃根权限,并以源文件所有者的身份运行。 |
-p | 创建新文件时,不继承输入文件的文件访问权限。 而是创建一个具有默认访问权限(模式 0644)的新文件。 |
-q key | 在指定的映射中查找 key,并将找到的第一个值写入标准输出流。 当找到请求的信息时,退出状态为零。如果指定了键值 程序将从标准输入流中读取键值, 并为每个找到的键写入 当找到至少一个请求的键时,退出状态为零。 |
-r | 更新表时,不要投诉尝试更新现有条目的尝试, 并仍然进行这些更新。 |
-s | 检索所有数据库元素,并为每个元素写入 元素按数据库顺序打印,不一定与原始输入顺序相同。 此功能在 Postfix 版本 2.2 及更高版本中可用, 不适用于所有数据库类型。 |
-v | 启用用于调试目的的详细日志记录。 多个 -v 选项会使软件变得越来越详细。 |
-w | 更新表时,不要投诉尝试更新现有条目的尝试, 并忽略这些尝试。 |
Arguments: | |
file_type | 数据库类型。要查找支持的类型, 使用 "postconf -m" 命令。 postalias(1) 命令可以查询任何支持的文件类型, 但只能创建以下文件类型: |
btree:输出为 btree 文件,命名为 file_name.db。 这在支持 db 数据库的系统上可用。 | |
cdb:输出为一个名为 file_name.cdb 的文件。 这在支持 cdb 数据库的系统上可用。 | |
dbm:输出包括两个文件, 命名为 file_name.pag 和 file_name.dir。 这在支持 dbm 数据库的系统上可用。 | |
hash:输出为散列文件,命名为 file_name.db。 这在支持 db 数据库的系统上可用。 | |
sdbm:输出包括两个文件,命名为 file_name.pag 和 file_name.dir。 这在支持 sdbm 数据库的系统上可用。 | |
当没有指定file_type时, 软件使用通过default_database_type 配置参数指定的数据库类型。 该参数的默认值与主机环境有关。 | |
file_name | 创建数据库时的别名数据库源文件的名称。 |
5、使用示例
1)使用配置目录读取主配置文件
postalias -c /path/to/config_dir main.cf
2)搜索特定的映射键并删除一个条目
postalias -d search_key /path/to/mapfile
如果从标准输入流中读取键值:
echo "search_key" | postalias -d -
3)不将查找键更改为小写
postalias -f /path/to/aliasfile
4)以增量模式读取条目
echo "key: value" | postalias -i /path/to/aliasfile
5)查询特定的映射键并将找到的第一个值写入标准输出
postalias -q search_key /path/to/mapfile
从标准输入流读取键值并为每个找到的键输出一行:
echo "search_key" | postalias -q -
6)更新表时,不抱怨尝试更新现有条目,并进行更新
postalias -r /path/to/aliasfile
7)启用详细记录以进行调试
postalias -v /path/to/aliasfile
8)创建btree文件类型的数据库
postalias btree:/path/to/output_file_name /path/to/aliasfile
9)创建hash文件类型的数据库
postalias hash:/path/to/output_file_name /path/to/aliasfile