Sun Java logo     上一页      目录      索引      下一页     

Sun logo
Sun Java System Calendar Server 6 2005Q1 管理指南 

第 15 章
管理日历

本章介绍了如何使用 Calendar Server 命令行实用程序来创建和管理日历,它包含以下主题:


日历管理概述

本节包含以下主题:

日历类型

有两种基本的日历类型。以下是有关这两种类型的信息:

日历的 Schema 1 工具

Schema 1 模式中可使用的三种实用程序:

要运行 csusercscalcsresource,必须以具有管理权限的用户身份登录正在运行 Calendar Server 的系统。您必须从 /opt/SUNWics5/cal/sbin 目录运行这些命令。也就是说,必须更改为 sbin 目录,不能通过指定该路径而从其他目录运行这些命令。

请参见附录 D“Calendar Server 命令行实用程序参考”中的命令行实用程序参考。

日历的 Schema 2 工具

在 Schema 2 模式中时,请使用 cscal 来创建和管理用户日历和资源日历。


commadmin 实用程序不具备用于日历管理的命令。


要运行 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]

这三个部分分别为:

日历 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 的新日历,则新日历(在非托管环境中)的 calidjsmith:meetings


如果将不具有默认日历的用户指定为参与者,则 Calendar Server 将显示错误信息:未找到日历。


启用自动置备

默认情况下将启用自动置备。但是,如果要在禁用它以后再次启用它,请执行以下步骤:

  1. 以有权更改此配置的管理员身份登录。
  2. 转至 /etc/opt/SUNWics5/cal/config 目录。
  3. 通过复制和重命名旧的 ics.conf 文件来保存该文件。
  4. 在 Calendar Server 配置文件 ics.conf 中编辑以下一个或多个参数,如表 15-1 所示:

    表 15-1 用于配置自动置备的 ics.conf 参数

    参数

    说明和默认值

    local.autoprovision

    设置为 "yes",则允许在用户首次登录后自动创建默认日历。默认情况下将启用自动置备。

    要禁用此功能,请将该值设置为 "no"。

  5. 验证是否已为日历启用了用户的 LDAP 条目。
  6. 此条目必须包含 icsCalendarUser 对象类。如果尚不存在该对象类,请向用户的 LDAP 条目添加该对象类。

  7. 如果站点使用托管域,则用户的域也必须启用日历,自动置备才能正常运行。此域条目必须包含 icsCalendarDomain 对象类。
  8. 保存此文件。
  9. 重新启动 Calendar Server。
  10. cal_svr_base/SUNWics5/cal/sbin/start-cal

禁用自动置备

  1. 以有权更改此配置的管理员身份登录。
  2. 转至 /etc/opt/SUNWics5/cal/config 目录。
  3. 通过复制和重命名旧的 ics.conf 文件来保存该文件。
  4. 在 Calendar Server 配置文件 ics.conf 中编辑以下一个或多个参数,如表 15-2 所示:

    表 15-2 用于禁用自动置备的 ics.conf 参数 

    参数

    说明和默认值

    local.autoprovision

    将该参数设置为 "no" 将禁用用户日历的自动置备。

  5. 保存此文件。
  6. 重新启动 Calendar Server。
  7. cal_svr_base/SUNWics5/cal/sbin/start-cal


    如果禁用了自动置备,则必须为用户显式创建日历,用户才能成功登录。



日历访问控制

Sun Java™ Calendar Server 使用访问控制列表 (ACL) 来确定日历、日历属性和日历组件(例如事件和待办事件 [任务])的访问控制。

本节包含以下主题:

访问控制的配置参数

表 15-3 介绍了 ics.conf 文件中 Calendar Server 用于访问控制的配置参数。有关更多信息,请参见附录 E“Calendar Server 配置参数”

表 15-3 访问控制的配置参数 

参数

说明

calstore.calendar.default.acl 

指定用户创建日历时使用的默认访问控制设置。默认值为:

@@o^a^r^g;@@o^c^wdeic^g;@^a^fs^g;@^c^^g;@^p^r^g

calstore.calendar.owner.acl

指定日历属主的默认访问控制设置。默认值为:

@@o^a^rsf^g;@@o^c^wdeic^g

resource.default.acl

指定创建资源日历时使用的默认访问控制设置。默认值为:

@@o^a^r^g;@@o^c^wdeic^g;@^a^rsf^g

“公用”和“私人”事件与任务过滤器

创建新事件或任务时,用户可以指定该事件或任务是“公用”、“私人”还是“仅时间与日期(保密)”:

calstore.filterprivateevents 确定 Calendar Server 是否过滤(识别)“私人”和“仅时间与日期(保密)”事件和任务。默认情况下此参数被设置为 "yes"。如果将 calstore.filterprivateevents 设置为 "no",那么 Calendar Server 将按处理“公用”事件和任务的方式处理“私人”及“仅时间与日期”事件和任务。

访问控制的命令行实用程序

表 15-4 介绍了允许设置或修改访问控制的 ACL 的 Calendar Server 命令行实用程序:

表 15-4 访问控制的命令行实用程序

实用程序

说明

cscal

使用带有 -a 选项的 create 和 modify 命令为特定的用户日历或资源日历设置 ACL。

csresource

如果正在使用 csresource 创建资源日历(在 Schema 1 模式下运行),请使用带 -a 选项的 csresource 实用程序来设置资源日历的 ACL。

commadmin
user

csuser

使用 Schema 2 commadmin 实用程序更改用户创建日历时使用的默认 ACL。

使用带 -a 选项的 Schema 1 csuser 实用程序更改用户创建日历时使用的默认 ACL。


创建日历

本节包含以下主题:

使用 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 配置参数”

表 15-5 ics.conf 文件中的资源日历配置参数 

参数

说明和默认值

resource.default.acl

此参数决定创建资源日历时使用的默认访问控制权限。默认权限由以下访问控制列表 (ACL) 指定:

@@o^a^r^g;@@o^c^wdeic^g;@^a^rsf^g

此 ACL 将授予所有日历用户读取、调度和空闲/繁忙访问该日历(包括组件和属性)的权限。

要更改资源的权限,请在使用 csresource 实用程序的 create 命令创建日历时使用 -a 选项。

resource.allow.doublebook

此参数决定资源日历是否允许双重预定。双重预定功能允许为资源日历的同一时段预定一个以上的事件。

默认值为 "no",即不允许双重预定。

要启用资源日历的双重预定功能,请在使用 csresource 实用程序的 create 命令创建日历时使用 -k 选项。

创建资源日历

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 参数指定。


Calendar Server 通知软件不会向资源发送通知,而是仅向用户发送通知。



管理用户日历

创建用户日历后,请使用 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 deletecommadmin user delete 删除了一个或多个用户,那些用户所拥有的日历将可能仍存在于数据库中。

可以用两种方法来删除用户的日历。要使用的方法取决于删除用户所使用的工具:

删除使用 csuser 删除的用户的所有日历

  1. 运行 cscal list 来查找已删除的属主 uid 的所有日历。
  2. cscal -o owner list

  3. 使用 cscal 来删除此属主的所有日历。
  4. cscal -o owner delete

  5. 通过再次运行 csuser list 来验证是否已删除所有日历。

    如果您已使用 commadmin 将用户标记为已删除,并且该用户的 LDAP 条目已被清除,则使用此过程。


删除使用 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 命令更新属性。

将用户日历移至不同的后端服务器

要将用户日历从一个后端服务器移至其他后端服务器,请执行以下操作:

  1. 在原始服务器上,使用 csuser 实用程序禁用日历用户。例如,禁用用户 ID 和 calidbkamdar 的用户:
  2. csuser disable bkamdar

  3. 在原始服务器上,使用 csexport 实用程序将用户的每个日历从日历数据库导出到某个文件中。例如:
  4. csexport -c bkamdar calendar bkamdar.ics

  5. 将导出的日历文件 (*.ics) 从原始服务器复制到新服务器上。
  6. 在新服务器上,针对已导出的每个日历,使用 csimport 实用程序将日历从此文件导入到日历数据库中。例如:
  7. csimport -c bkamdar calendar bkamdar.ics

  8. 在 LDAP Directory Server 上,使用 csattribute 实用程序更新日历属主的 icsDWPHost LDAP 属性,以指向新的后端服务器。要更新属性,必须先删除该属性,然后再添加它并为其指定新值。例如,要将新服务器名设置为 sesta.com
  9. csattribute -a icsDWPHost delete bkamdar
    csattribute -a icsDWPHost=sesta.com add bkamdar

  10. 在新服务器上,使用 csuser 实用程序启用用户日历的日历用户。例如:
  11. csuser enable bkamdar

  12. 在新服务器上,使用以下命令验证这些属性是否正确以及是否已正确移动了每个日历。例如:
  13. cscal -v -o bkamdar list bkamdar
    ...
    csattribute -v list bkamdar

  14. 在原始服务器上,删除刚刚移动的每个日历。例如:
  15. cscal -o bkamdar delete bkamdar

    -o 选项将删除主要属主为 bkamdar 的所有日历。


    如果您要在将日历移至不同的后端服务器之后使用 CLD 高速缓存选项,则应清除 CLD 高速缓存以删除该服务器名称。CLD 高速缓存中的过期条目可以阻止前端服务器在日历被移动后查找此日历。要清除 CLD 高速缓存,请执行以下操作:

    • 停止 Calendar Server。
    • 删除 /var/opt/SUNWics5/csdb/cld_cache 目录中的所有文件,但不要删除 cld_cache 目录本身。
    • 重新启动 Calendar Server。


管理资源日历

创建了资源日历后,使用 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 实用程序的 enabledisable 命令。

例如,可使用以下命令禁用名为 Auditorium 的资源日历:

csresource disable Auditorium

然后,可使用以下命令启用资源日历:

csresource enable Auditorium

删除资源日历

要删除资源日历,请使用 csresource 实用程序的 delete 命令。

例如,可使用以下命令删除名为 Auditorium 的资源日历:

csresource delete Auditorium

Calendar Server 将显示以下消息:

是否确实要删除此资源 (y/n)?

输入 "y" 删除日历或输入 "n" 取消操作。

如果输入 "y",Calendar Server 将删除日历并显示一条表明日历已被删除的消息。

将资源日历移至不同的后端服务器

要将用户或资源日历从一个后端服务器移至其他后端服务器,请执行以下操作:

  1. 在原始服务器上,使用 csresource 实用程序禁用日历资源。例如,禁用资源日历 bkamdar
  2. csresource disable bkamdar

  3. 在原始服务器上,使用 csexport 实用程序将资源的每个日历从日历数据库导出到某个文件中。例如:
  4. csexport -c bkamdar calendar bkamdar.ics

  5. 将导出的日历文件 (*.ics) 从原始服务器复制到新服务器上。
  6. 在新服务器上,针对已导出的每个日历,使用 csimport 实用程序将此文件中的这些日历导入到日历数据库中。例如:
  7. csimport -c bkamdar calendar bkamdar.ics

  8. 在 LDAP Directory Server 上,使用 csattribute 实用程序更新日历属主的 icsDWPHost LDAP 属性,以指向新的后端服务器。要更新属性,必须先删除该属性,然后再添加它并为其指定新值。例如,要将新服务器名设置为 sesta.com
  9. csattribute -a icsDWPHost delete bkamdar
    csattribute -a icsDWPHost=sesta.com add bkamdar

  10. 在新服务器上,使用 csresource 实用程序启用日历资源。例如:
  11. csresource enable bkamdar

  12. 在新服务器上,使用以下命令验证这些属性是否正确以及是否已正确移动了每个日历。例如:
  13. cscal -v -o bkamdar list bkamdar
    csattribute -v list bkamdar

  14. 在原始服务器上,删除刚刚移动的每个日历。例如:
  15. cscal -o bkamdar delete bkamdar

    -o 选项将删除主要属主为 bkamdar 的所有日历。


    如果您要使用 CLD 高速缓存选项并且已将日历移至不同的后端服务器,则应清除 CLD 高速缓存以删除该服务器名称。CLD 高速缓存中的过期条目可以阻止前端服务器在日历被移动后查找此日历。要清除 CLD 高速缓存,请执行以下操作:

    • 停止 Calendar Server。
    • 删除 /var/opt/SUNWics5/csdb/cld_cache 目录中的所有文件,但不要删除 cld_cache 目录本身。
    • 重新启动 Calendar Server。


创建日历链接

可以创建一个或多个用户日历或资源日历的链接,只要每个日历设置了允许读取访问的权限。例如,可以在 Web 页或电子邮件消息中嵌入日历链接。然后,其他用户就可以匿名查看该日历而无需登录 Calendar Server。

可使用以下语法创建一个或多个用户日历的链接:

http://hostname:port/[command.shtml]?calid=calid-1;calid-2; ... ;calid-n&view=viewname

请使用半角分号 (;) 分隔每个日历 ID (calid)。

viewname 可以是 overviewdayviewweekviewmonthview。(view 也可以为 yearview,但没有上述几个视图有用。)

注意:如果只链接一个日历且不使用 view 选项(或其他选项),请忽略 command.shtml。

例如,要链接 jsmith 的默认日历,请输入:

http://calendar.sesta.com:8080/?calid=jsmith

要链接 calidoverhead_projector10 的顶置光源投影仪的资源日历,请输入:

http://calendar.sesta.com:8080/?calid=overhead_projector10

但要链接 jsmithtchang 的默认日历,并以日视图显示日历,则请输入:

http://calendar.sesta.com:8080/command.shtml?calid=jsmith;tchang&
view=dayview


导入和导出日历数据

要将日历数据导出到文件中,或从文件中导入日历数据,请使用 csexportcsimport 实用程序。日历数据可以是 iCalendar (.ics) 或 XML (.xml) 格式。

必须在已安装 Calendar Server 的本地计算机上运行 csexportcsimport。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



上一页      目录      索引      下一页     


文件号码:819-1478。版权所有 2005 Sun Microsystems, Inc. 保留所有权利。