Sun Java System Calendar Server 6 2005Q4 管理指南

管理用户日历

创建用户日历后,请使用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

删除已删除的用户的日历

如果您已使用 Calendar Server 实用程序的 csuser delete 命令,或者 Delegated Administrator 控制台或实用程序删除了一个或多个用户,那些用户所拥有的日历将可能仍存在于数据库中。

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

csuser

csuser 实用程序用于删除 LDAP 目录下的用户及该用户的默认日历,但不会删除该用户可能拥有的其他任何日历。有关如何使用 cscal 来删除这些日历的说明,请参见删除使用 csuser 删除的用户的所有日历

Delegated Administrator

Delegated Administrator 不会删除任何日历。使用 Delegated Administrator 将用户标记为已删除,然后使用 Calendar Server 实用程序 csclean 删除标记为已删除的用户的所有日历。

有关如何使用 csclean 来删除已删除的用户的日历的说明,请参见删除使用 Delegated Administrator 删除的用户的所有日历

有关使用 Delegated Administrator 实用程序的说明,请参见《Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide》

有关使用 Delegated Administrator 控制台的说明,请参见联机帮助。

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

步骤
  1. 运行 cscal list 来查找已删除的属主 uid 的所有日历。

    cscal -o owner list

  2. 使用 cscal 来删除此属主的所有日历。

    cscal -o owner delete

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


    注 –

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


Procedure删除使用 Delegated Administrator 删除的用户的所有日历

Delegated Administrator 不会删除日历。此 csclean 实用程序用于删除已使用 Delegated Administrator 标记为已删除的任何用户的所有日历。

步骤
  1. csclean 用于删除标记为已删除但尚未被清除的用户的所有日历。

    例如,要删除最近 10 天 sesta.com 域中标记为已删除的用户的所有日历,则应执行如下命令:

    csclean -g 10 clean sesta.com
  2. 如果用户已从 LDAP 中清除,那么您必须使用 cscal。

    有关说明,请参见删除使用 csuser 删除的用户的所有日历

启用日历

要启用日历以允许用户访问该日历,请使用 cscal 实用程序的 enable 命令。

例如,可使用以下命令来使用默认配置设置启用日历 jsmith:meetings

cscal enable jsmith:meetings

可使用以下命令启用日历 jsmith:meetings,但不允许双重预订:

cscal -k no enable jsmith:meetings

禁用日历

要禁止用户访问日历,请使用 cscal 实用程序的 disable 命令。disable 命令将禁止用户访问日历,但并不会从日历数据库中删除信息。

例如,可使用以下命令禁止用户访问 jsmith:meetings

cscal disable 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

恢复“丢失的”默认日历

如果用户的默认日历未出现在 Communications Express“当前日历”下拉式列表中,但仍存在于数据库中,则可以通过更新用户 LDAP 条目中的以下属性来恢复该日历:

其中,default_calid 为用户的默认日历 ID (calid)。

对于 Schema 2,使用以下方法之一更新属性:

对于 Schema 1,使用 csattribute add 命令更新属性。

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

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

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


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


    csexport -c bkamdar calendar bkamdar.ics
  3. 将导出的日历文件 (*.ics) 从原始服务器复制到新服务器上。

  4. 在新服务器上,针对已导出的每个日历,使用csimport实用程序将日历从此文件导入到日历数据库中。例如:


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


    csattribute -a icsDWPHost delete bkamdar
     csattribute -a icsDWPHost=sesta.com add bkamdar
  6. 在新服务器上,使用csuser实用程序启用用户日历的日历用户。例如:


    csuser enable bkamdar
  7. 在新服务器上,使用以下命令验证这些属性是否正确以及是否已正确移动了每个日历。例如:


    cscal -v -o bkamdar list bkamdar
     ...
     csattribute -v list bkamdar
  8. 在原始服务器上,删除刚刚移动的每个日历。例如:


    cscal -o bkamdar delete bkamdar

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


    注 –

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

    • 停止 Calendar Server。

    • 删除 /var/opt/SUNWics5/csdb/cld_cache 目录中的所有文件,但不要删除 cld_cache 目录本身。

    • 重新启动 Calendar Server。