![]() | |
Sun Java System Calendar Server 6 2005Q1 管理指南 |
第 15 章
管理日历本章介绍了如何使用 Calendar Server 命令行实用程序来创建和管理日历,它包含以下主题:
日历管理概述本节包含以下主题:
日历类型
有两种基本的日历类型。以下是有关这两种类型的信息:
日历的 Schema 1 工具
Schema 1 模式中可使用的三种实用程序:
要运行 csuser、cscal 或 csresource,必须以具有管理权限的用户身份登录正在运行 Calendar Server 的系统。您必须从 /opt/SUNWics5/cal/sbin 目录运行这些命令。也就是说,必须更改为 sbin 目录,不能通过指定该路径而从其他目录运行这些命令。
请参见附录 D“Calendar Server 命令行实用程序参考”中的命令行实用程序参考。
日历的 Schema 2 工具
在 Schema 2 模式中时,请使用 cscal 来创建和管理用户日历和资源日历。
要运行 cscal,必须以具有管理权限的用户身份登录正在运行 Calendar Server 的系统。您必须从 /opt/SUNWics5/cal/sbin 目录运行这些命令。也就是说,必须更改为 sbin 目录,不能通过指定该路径而从其他目录运行这些命令。
请参见附录 D“Calendar Server 命令行实用程序参考”中的命令行实用程序参考。
创建日历的唯一标识符 (calid)Calendar Server 数据库中的每个日历都由一个唯一的日历标识符 (ID) 或 calid 标识。创建日历时,要求指定 calid。
本节包含以下主题:
Calid 语法
数据库中的每个日历都由一个唯一的日历 ID (calid) 标识。下面的 calid 语法分成三个部分:
userid[@domain][:calendar-name]
这三个部分分别为:
如果没有托管域,则域这一部分可选,因为用户位于哪个域中是明确的。
如果存在托管域,而又没有指定域这一部分,则 Calendar Server 将使用 ics.conf 参数 service.defaultdomain 中指定的值来指定域。如果用户不在默认的域中,则必须指定域部分。
有关托管域(也称作虚拟域)的更多信息,请参见第 11 章“设置托管域”和第 13 章“管理托管域”。
日历 ID 创建规则
创建 calid 时,请注意以下规则:
正确的日历 ID 示例:
jsmith
jsmith:private_calendar
jsmith@calendar.sesta.com:new-cal将非托管 Calid 转换为托管域格式的 Calid
如果在拥有托管域之前已创建 calid,并且希望将非托管域的 calid 转换为托管域的 calid,可以使用 csvdmig 实用程序将域部分添加到现有 calid 中。有关如何使用此实用程序的说明,请参见 csvdmig。
自动创建用户日历本节包含以下主题:
自动创建日历功能
用户首次登录时,Calendar Server 将为用户自动创建默认日历。此功能称为自动置备。默认情况下将启用自动置备。但是,自动置备仅可用于用户日历;资源日历必须显式创建。
Calendar Server 将根据用户 ID 为这个新的默认日历创建日历 ID (calid),除非已存在同名的日历。
例如,如果 John Smith 使用用户 ID jsmith 首次登录 Calendar Server,则 Calendar Server 将自动创建以 jsmith 作为 calid 的默认日历。John Smith 随后创建的每个日历的 calid 都将使用 jsmith:作为日历名称的前缀。例如,如果 John Smith 随后创建了名为 meetings 的新日历,则新日历(在非托管环境中)的 calid 为 jsmith:meetings。
启用自动置备
默认情况下将启用自动置备。但是,如果要在禁用它以后再次启用它,请执行以下步骤:
- 以有权更改此配置的管理员身份登录。
- 转至 /etc/opt/SUNWics5/cal/config 目录。
- 通过复制和重命名旧的 ics.conf 文件来保存该文件。
- 在 Calendar Server 配置文件 ics.conf 中编辑以下一个或多个参数,如表 15-1 所示:
- 验证是否已为日历启用了用户的 LDAP 条目。
此条目必须包含 icsCalendarUser 对象类。如果尚不存在该对象类,请向用户的 LDAP 条目添加该对象类。
- 如果站点使用托管域,则用户的域也必须启用日历,自动置备才能正常运行。此域条目必须包含 icsCalendarDomain 对象类。
- 保存此文件。
- 重新启动 Calendar Server。
cal_svr_base/SUNWics5/cal/sbin/start-cal
禁用自动置备
- 以有权更改此配置的管理员身份登录。
- 转至 /etc/opt/SUNWics5/cal/config 目录。
- 通过复制和重命名旧的 ics.conf 文件来保存该文件。
- 在 Calendar Server 配置文件 ics.conf 中编辑以下一个或多个参数,如表 15-2 所示:
- 保存此文件。
- 重新启动 Calendar Server。
cal_svr_base/SUNWics5/cal/sbin/start-cal
日历访问控制Sun Java Calendar Server 使用访问控制列表 (ACL) 来确定日历、日历属性和日历组件(例如事件和待办事件 [任务])的访问控制。
本节包含以下主题:
访问控制的配置参数
表 15-3 介绍了 ics.conf 文件中 Calendar Server 用于访问控制的配置参数。有关更多信息,请参见附录 E“Calendar Server 配置参数”。
“公用”和“私人”事件与任务过滤器
创建新事件或任务时,用户可以指定该事件或任务是“公用”、“私人”还是“仅时间与日期(保密)”:
calstore.filterprivateevents 确定 Calendar Server 是否过滤(识别)“私人”和“仅时间与日期(保密)”事件和任务。默认情况下此参数被设置为 "yes"。如果将 calstore.filterprivateevents 设置为 "no",那么 Calendar Server 将按处理“公用”事件和任务的方式处理“私人”及“仅时间与日期”事件和任务。
访问控制的命令行实用程序
表 15-4 介绍了允许设置或修改访问控制的 ACL 的 Calendar Server 命令行实用程序:
创建日历本节包含以下主题:
使用 cscal 创建用户日历
要创建新日历,请使用 cscal 实用程序的 create 命令。LDAP 目录中必须已经存在用户条目或资源条目。有关向 LDAP 目录添加用户和资源的信息,请参阅第 14 章“管理用户和资源”。
如果您的站点使用的是 LDAP 日历查找数据库 (CLD) 插件,则必须按照用户条目或资源条目中的 icsDWPHost LDAP 属性中的指定,在同一后端服务器上为特定用户或资源创建所有日历。如果试图在不同的后端服务器上创建日历,cscal 实用程序将返回一条错误信息。有关 LDAP CLD 插件的信息,请参阅第 6 章“在多个计算机上配置日历数据库分发”。
例如,可使用以下命令创建日历 ID (calid) 为 jsmith 的新日历:
cscal -o jsmith -n JohnSmithCalendar create jsmith
其中:
要创建属主为 John Smith,可见名称为 Hobbies,并且使用默认访问控制设置进行组计划的日历,请使用以下命令:
cscal -n Hobbies -o jsmith create Personal
其中:
以下示例将创建与上一个实例类似的新日历,但它还与名为 sports 的类别关联,同时还启用了双重预定,并指定 Ron Jones 作为另一个属主:
cscal -n Hobbies -o jsmith -g sports -k yes -y rjones create Personal
其中:
以下示例创建了与上一个示例类似的日历,但它还为组计划设置了的特定的访问控制设置:
cscal -n Hobbies -o jsmith -a "@@o^a^sfr^g" create Personal
其中,-a "@@o^a^sfr^g" 为其他属主授予对该日历的组计划组件和日历属性进行预定、空闲/繁忙和读取访问权限。
准备创建资源日历
资源日历与可以安排的物品关联,例如,会议室、笔记本计算机、顶置光源投影仪以及其他设备。资源日历需要访问控制列表。
ics.conf 文件中适用于资源日历的两个配置参数:
要更改这些参数的默认值(如表 15-5 中所示),请编辑 ics.conf 文件。对默认值所做的更改只能应用到新的资源日历,而不能更改现有资源日历的值。如果希望更改现有资源日历的值,需要使用 cscal 实用程序或 commadmin resource modify 命令。csresource 实用程序没有 modify 命令。
有关更多信息,请参见附录 E“Calendar Server 配置参数”。
创建资源日历
Calendar Server 不会自动创建资源日历。对于您的站点要求的每个资源,必须使用 csresource 实用程序的 create 命令来创建资源 LDAP 条目并在日历数据库中创建其日历。创建资源日历时需注意以下事项:
例如,可使用以下命令创建日历 ID 为 aud100,可见名称为 Auditorium(LDAP cn 属性)且具有表 15-5 所示的默认设置的资源日历:
csresource -c aud100 create Auditorium
以下命令与上一个命令执行相同的操作,但 -k 选项允许对日历进行双重预定,-o 选项指定 bkamdar 作为日历的属主,而 -y 选项指定 jsmith 作为另一个属主:
csresource -c aud100 -k yes -o bkamdar -y jsmith create Auditorium
如果不为资源日历指定属主,其值将由 ics.conf 文件中的 service.admin.calmaster.userid 参数指定。
管理用户日历创建用户日历后,请使用 cscal 实用程序执行以下管理任务:
显示日历
要显示所有日历、某个用户拥有的所有日历或特定日历的属性,请使用 cscal 实用程序的 list 命令。
例如,可使用以下命令列出日历数据库中的所有日历:
cscal list
可使用以下命令列出 jsmith 拥有的所有日历:
cscal -o jsmith list
可使用以下命令列出日历 ID 为 jsmith:meetings 的日历的所有属性:
cscal -v list jsmith:meetings
删除日历
要从 Calendar Server 中删除一个或多个日历,请使用 cscal 实用程序的 delete 命令。此实用程序将删除日历,但并不会从 Directory Server 中删除用户。
注意 delete 命令将从日历数据库中删除所有日历信息,并且不能撤消。删除日历后,只有在已经对日历数据进行了备份的情况下才能恢复它。有关更多信息,请参见第 17 章“备份和恢复 Calendar Server 数据”。
可以使用 cscal 实用程序删除一个或多个日历。
例如,可使用以下命令删除日历 ID 为 jsmith:meetings 的特定日历:
cscal delete jsmith:meetings
可使用以下命令删除主要属主为 jsmith 的所有日历:
cscal -o jsmith delete
删除已删除的用户的日历
如果您已使用 csuser delete 或 commadmin user delete 删除了一个或多个用户,那些用户所拥有的日历将可能仍存在于数据库中。
可以用两种方法来删除用户的日历。要使用的方法取决于删除用户所使用的工具:
- csuser——csuser 实用程序用于删除 LDAP 目录下的用户及该用户的默认日历,但不会删除该用户可能拥有的其他任何日历。有关如何使用 cscal 来删除这些日历的说明,请参见删除使用 csuser 删除的用户的所有日历。
- commadmin——commadmin 实用程序不会删除任何日历。有关如何使用 csclean 来删除已删除的用户的日历的说明,请参见删除使用 commadmin 删除的用户的所有日历。
删除使用 csuser 删除的用户的所有日历
删除使用 commadmin 删除的用户的所有日历
此实用程序用于删除在指定时间跨度内任何标记为已删除但尚未被清除的用户的所有日历。例如,如果要删除最近 10 天 sesta.com 域中标记为已删除的用户的所有日历,则应执行如下命令:
csclean -g 10 clean sesta.com
注
如果用户已从 LDAP 中清除,那么您必须使用另一个过程删除使用 csuser 删除的用户的所有日历。
禁用或启用日历
要禁止用户访问日历,请使用 cscal 实用程序的 disable 命令。disable 命令将禁止用户访问日历,但并不会从日历数据库中删除信息。
例如,可使用以下命令禁止用户访问 jsmith:meetings:
cscal disable jsmith:meetings
要启用日历以允许用户访问,请使用 cscal 实用程序的 enable 命令。例如,可使用以下命令来使用默认配置设置启用日历 jsmith:meetings:
cscal enable jsmith:meetings
可使用以下命令启用日历 jsmith:meetings,但不允许双重预定:
cscal -k no enable jsmith:meetings
修改日历属性
要修改日历属性,请使用 cscal 实用程序的 modify 命令。
例如,可使用以下命令更改 AllAdmins 的组计划访问控制设置,并指定 RJones 作为另一个属主:
cscal -a "@@o^c^wd^g" -y RJones modify AllAdmins
其中:
从日历中删除属性
要从日历中删除属性值,请使用 cscal 实用程序的 modify 命令,并用两个双引号 ("") 指定选项的值。
例如,可使用以下命令从 jsmith:meetings 中删除说明:
cscal -d "" modify jsmith:meetings
可使用以下命令从 jsmith:meetings 中删除所有类别:
cscal -g "" modify jsmith:meetings
可使用以下命令从 jsmith:meetings 中删除“其他属主”:
cscal -y "" modify jsmith:meetings
恢复“丢失的”日历
如果用户的默认日历未出现在 Calendar Express 的“视图”或“日历”选项卡上,但仍存在于数据库中,则可以通过更新用户 LDAP 条目中的以下属性来恢复该日历:
其中,default_calid 为用户的默认日历 ID (calid)。
可以使用 ldapmodify Directory Server 实用程序、csuser reset 命令或 commadmin user modify 命令。对于 Schema 1,可以使用 csattribute add 命令更新属性。
将用户日历移至不同的后端服务器
要将用户日历从一个后端服务器移至其他后端服务器,请执行以下操作:
- 在原始服务器上,使用 csuser 实用程序禁用日历用户。例如,禁用用户 ID 和 calid 为 bkamdar 的用户:
csuser disable bkamdar
- 在原始服务器上,使用 csexport 实用程序将用户的每个日历从日历数据库导出到某个文件中。例如:
csexport -c bkamdar calendar bkamdar.ics
- 将导出的日历文件 (*.ics) 从原始服务器复制到新服务器上。
- 在新服务器上,针对已导出的每个日历,使用 csimport 实用程序将日历从此文件导入到日历数据库中。例如:
csimport -c bkamdar calendar bkamdar.ics
- 在 LDAP Directory Server 上,使用 csattribute 实用程序更新日历属主的 icsDWPHost LDAP 属性,以指向新的后端服务器。要更新属性,必须先删除该属性,然后再添加它并为其指定新值。例如,要将新服务器名设置为 sesta.com:
csattribute -a icsDWPHost delete bkamdar
csattribute -a icsDWPHost=sesta.com add bkamdar- 在新服务器上,使用 csuser 实用程序启用用户日历的日历用户。例如:
csuser enable bkamdar
- 在新服务器上,使用以下命令验证这些属性是否正确以及是否已正确移动了每个日历。例如:
cscal -v -o bkamdar list bkamdar
...
csattribute -v list bkamdar- 在原始服务器上,删除刚刚移动的每个日历。例如:
cscal -o bkamdar delete bkamdar
-o 选项将删除主要属主为 bkamdar 的所有日历。
管理资源日历创建了资源日历后,使用 csresource 实用程序来对其进行管理。以下是管理资源日历所需的过程:
显示资源日历及其属性
要显示资源日历,请使用 csresource 实用程序的 list 命令。
例如,可使用以下命令显示所有 Calendar Server 资源日历及其对应的 LDAP 属性的列表:
csresource list
可使用以下命令显示名为 Auditorium 的特定资源日历的所有 LDAP 属性的列表:
csresource -v list Auditorium
修改资源日历
要修改资源日历,请使用 cscal 实用程序的 modify 命令(csresource 实用程序没有 modify 命令)。
例如,可使用以下命令为名为 Auditorium 的资源日历设置一个名为 tchang 的属主并为其添加另一个名为 mwong 的属主:
cscal -o tchang -y mwong modify aud100
在本例中,cscal 实用程序需要 calid (aud100),而不是日历名称 (Auditorium)。
禁用或启用资源日历
您可能希望禁用资源日历,以防止用户预定事件。例如,会议室可能因为装修而无法使用,或顶置光源投影仪已送修。
要禁用或启用资源日历,请使用 csresource 实用程序的 enable 或 disable 命令。
例如,可使用以下命令禁用名为 Auditorium 的资源日历:
csresource disable Auditorium
然后,可使用以下命令启用资源日历:
csresource enable Auditorium
删除资源日历
要删除资源日历,请使用 csresource 实用程序的 delete 命令。
例如,可使用以下命令删除名为 Auditorium 的资源日历:
csresource delete Auditorium
Calendar Server 将显示以下消息:
是否确实要删除此资源 (y/n)?
输入 "y" 删除日历或输入 "n" 取消操作。
如果输入 "y",Calendar Server 将删除日历并显示一条表明日历已被删除的消息。
将资源日历移至不同的后端服务器
要将用户或资源日历从一个后端服务器移至其他后端服务器,请执行以下操作:
- 在原始服务器上,使用 csresource 实用程序禁用日历资源。例如,禁用资源日历 bkamdar:
csresource disable bkamdar
- 在原始服务器上,使用 csexport 实用程序将资源的每个日历从日历数据库导出到某个文件中。例如:
csexport -c bkamdar calendar bkamdar.ics
- 将导出的日历文件 (*.ics) 从原始服务器复制到新服务器上。
- 在新服务器上,针对已导出的每个日历,使用 csimport 实用程序将此文件中的这些日历导入到日历数据库中。例如:
csimport -c bkamdar calendar bkamdar.ics
- 在 LDAP Directory Server 上,使用 csattribute 实用程序更新日历属主的 icsDWPHost LDAP 属性,以指向新的后端服务器。要更新属性,必须先删除该属性,然后再添加它并为其指定新值。例如,要将新服务器名设置为 sesta.com:
csattribute -a icsDWPHost delete bkamdar
csattribute -a icsDWPHost=sesta.com add bkamdar- 在新服务器上,使用 csresource 实用程序启用日历资源。例如:
csresource enable bkamdar
- 在新服务器上,使用以下命令验证这些属性是否正确以及是否已正确移动了每个日历。例如:
cscal -v -o bkamdar list bkamdar
csattribute -v list bkamdar- 在原始服务器上,删除刚刚移动的每个日历。例如:
cscal -o bkamdar delete bkamdar
-o 选项将删除主要属主为 bkamdar 的所有日历。
创建日历链接可以创建一个或多个用户日历或资源日历的链接,只要每个日历设置了允许读取访问的权限。例如,可以在 Web 页或电子邮件消息中嵌入日历链接。然后,其他用户就可以匿名查看该日历而无需登录 Calendar Server。
可使用以下语法创建一个或多个用户日历的链接:
http://hostname:port/[command.shtml]?calid=calid-1;calid-2; ... ;calid-n&view=viewname
请使用半角分号 (;) 分隔每个日历 ID (calid)。
viewname 可以是 overview、dayview、weekview 或 monthview。(view 也可以为 yearview,但没有上述几个视图有用。)
注意:如果只链接一个日历且不使用 view 选项(或其他选项),请忽略 command.shtml。
例如,要链接 jsmith 的默认日历,请输入:
http://calendar.sesta.com:8080/?calid=jsmith
要链接 calid 为 overhead_projector10 的顶置光源投影仪的资源日历,请输入:
http://calendar.sesta.com:8080/?calid=overhead_projector10
但要链接 jsmith 和 tchang 的默认日历,并以日视图显示日历,则请输入:
http://calendar.sesta.com:8080/command.shtml?calid=jsmith;tchang&
view=dayview
导入和导出日历数据要将日历数据导出到文件中,或从文件中导入日历数据,请使用 csexport 和 csimport 实用程序。日历数据可以是 iCalendar (.ics) 或 XML (.xml) 格式。
必须在已安装 Calendar Server 的本地计算机上运行 csexport 和 csimport。Calendar Server 可以正在运行或已经停止。
导出日历数据
要将日历数据导出到文件中,请使用 csexport。为输出文件指定的文件扩展名(.ics 或 .xml)决定了使用的格式。
例如,可使用以下命令以 iCalendar (text/calendar MIME) 格式将日历 ID (calid) 为 jsmithcal 的日历导出到名为 jsmith.ics 的文件中:
csexport -c jsmithcal calendar jsmith.ics
可使用以下命令以 XML (text/xml MIME) 格式将日历 jsmithcal 导出到名为 jsmith.xml 的文件中:
csexport -c jsmithcal calendar jsmith.xml
导入日历数据
要从以前使用 csexport 实用程序保存的文件中导入日历数据,请使用 csimport。导入文件的文件扩展名(.ics 或 .xml)表明了日历的保存格式。
例如,可使用以下命令从以 iCalendar (text/calendar MIME) 格式保存的文件 jsmith.ics 中将日历数据导入到日历 ID (calid) 为 jsmithcal 的日历中:
csimport -c jsmithcal calendar jsmith.ics
可使用以下命令从以 XML (text/xml MIME) 格式保存的文件 jsmith.xml 中将数据导入到日历 jsmithcal 中:
csimport -c jsmithcal calendar jsmith.xml