本小節說明如何使用 Calendar Server 公用程式 D.5 cscal 管理使用者行事曆。
本小節包含以下管理工作:
若要顯示所有行事曆、某位使用者擁有的所有行事曆,或特定行事曆的特性,請使用 cscal 公用程式的 list 指令。
以下範例示範使用 cscal 執行的三個不同工作。
列出行事曆資料庫的所有行事曆:
cscal list
列出 jsmith 擁有的所有行事曆:
cscal - o jsmith list
列出行事曆 ID 為 jsmith:meetings 的行事曆的所有特性:
cscal -v list jsmith:meetings
若要從 Calendar Server 中刪除一個或多個行事曆,請使用 cscal 公用程式的 delete 指令。此公用程式會刪除行事曆,但不會從目錄伺服器中刪除使用者。
以下兩個範例示範使用 cscal delete 可完成的不同工作:
刪除行事曆 ID 為 jsmith@sesta.com:meetings 的特定行事曆:
cscal delete jsmith@sesta.com:meetings
刪除其主要所有者為 smith@sesta.com 的所有行事曆:
cscal -o jsmith@sesta.com delete
delete 指令會從行事曆資料庫中移除所有行事曆資訊,並且無法還原。刪除某個行事曆後,僅當您曾備份該行事曆資料時才可回復該資料。如需更多資訊,請參閱第 17 章, 備份與復原 Calendar Server 資料。
使用 Calendar Server 公用程式指令 csuser delete 或 Delegated Administrator 主控台或公用程式刪除一個或多個使用者後,該使用者所擁有的行事曆可能仍在資料庫中。
有兩種方法可移除使用者的行事曆。使用何種方法取決於刪除使用者時所使用的工具︰
csuser 公用程式可移除 LDAP 目錄中的使用者及其預設行事曆,但不移除該使用者可能擁有的其他任何行事曆。如需如何使用 cscal 來移除這些行事曆的說明,請參閱在 Calendar Server 版本 6.3 中移除以 csuser 刪除之使用者的所有行事曆。
Delegated Administrator 不會移除任何行事曆。請使用 Delegated Administrator 標記要刪除的使用者,然後使用 Calendar Server 公用程式 csclean 移除標記為刪除的使用者的行事曆。
如需有關如何使用 csclean 移除已刪除使用者的行事曆的說明,請參閱移除由 Delegated Administrator 刪除之使用者的所有行事曆。
如需有關使用 Delegated Administrator 公用程式的說明,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
如需有關使用 Delegated Administrator 主控台的說明,請參閱線上說明。
執行 cscal list 指令,以找到已刪除所有者之 uid 對應的所有行事曆。
cscal -o owner list
使用 cscal 指令移除該所有者的所有行事曆。
cscal -o owner delete
再次執行 csuser list,以驗證是否已移除所有行事曆。
如果已使用 commadmin 將使用者標記為刪除,且使用者的 LDAP 項目已清除,則使用此程序。
Delegated Administrator 不會移除行事曆。請使用 csclean 公用程式移除使用 Delegated Administrator 標記為刪除的所有使用者的全部行事曆。
請使用 csclean 移除標記為刪除但尚未清除之使用者的所有行事曆。
例如,若要移除過去 10 天內 sesta.com 網域中標記為刪除的使用者的所有行事曆,請使用以下指令︰
csclean -g 10 clean sesta.com
如果使用者已從 LDAP 中清除,則必須使用 cscal。
若要允許使用者存取其行事曆,必須先使用 cscal enable 指令啟用行事曆。
下列範例示範如何啟用行事曆:
使用預設的配置設定來啟用行事曆 jsmith@sesta.com:meetings:
cscal enable jsmith@sesta.com:meetings
啟用行事曆 jsmith@sesta.com:meetings 但不允許雙預定:
cscal -k no enable jsmith@sesta.com:meetings
若要防止使用者存取行事曆,請使用 cscal 公用程式的 disable 指令。disable 指令可防止使用者存取行事曆,但不會從行事曆資料庫中移除資訊。
例如,若要防止使用者存取 jsmith@sesta.com:meetings,請使用下列指令:
cscal disable jsmith@sesta.com:meetings
若要修改行事曆的特性,請使用 cscal 公用程式的 modify 指令。
例如,變更 AllAdmins 的群組排程存取控制設定,並將 RJones@sesta.com 指定為另一位所有者:
cscal -a "@@o^c^wd^g" -y RJones@sesta.com modify AllAdmins
以下說明上一個範例所使用的兩個指令變數:
-a "@@o^c^wd^g" 授予所有者對 AllAdmins 的元件 (事件和工作) 的寫入和刪除存取權限。
-y RJones@sesta.com 指定另一位所有者的使用者 ID。
若要從行事曆移除特性值,請使用 cscal modify 指令,並使用兩個雙引號 ("") 指定選項值。
以下三個範例顯示如何移除不同的特性:
從 jsmith@sesta.com:meetings 移除說明:
cscal -d "" modify jsmith@sesta.com:meetings
從 jsmith@sesta.com:meetings 行事曆移除所有種類:
cscal -g "" modify jsmith@sesta.com:meetings
從 jsmith@sesta.com:meetings 移除「其他所有者」:
cscal -y "" modify jsmith@sesta.com:meetings
若在 Communications Express 使用者介面用戶端看不到使用者的預設行事曆,但該行事曆仍存在於資料庫中,則您可以復原行事曆,並更新使用者的 LDAP 項目的兩個屬性以使行事曆再次可見。
若要回復行事曆,請確定使用者的 LDAP 項目中的下列屬性值為使用者的完全合格 calid:
icsCalendar
icsSubscribed
對於 Schema 2,請使用以下方法之一更新屬性:
使用 Directory Server 公用程式 ldapmodify。
使用 Calendar Server 公用程式指令 csuser reset。
使用 Delegated Administrator 公用程式指令 commadmin user modify。
使用 Delegated Administrator 主控台,透過編輯 [使用者特性] 頁面增加預設行事曆名稱。
對於 Schema 1,請使用 csattribute add 指令更新屬性。
若要將使用者行事曆從一台後端伺服器移至另一台後端伺服器,請執行以下步驟:
在原始伺服器上,使用D.19 csuser公用程式停用行事曆使用者。例如,停用使用者 ID 和 calid 為 bkamdar 的使用者:
csuser disable bkamdar
在原始伺服器上,使用D.10 csexport公用程式將使用者的每個行事曆從行事曆資料庫匯出至檔案。例如:
csexport -c bkamdar calendar bkamdar.ics
將匯出的行事曆 (*.ics) 檔案從原始伺服器複製到新伺服器中。
在新伺服器上,使用D.11 csimport公用程式將每個匯出的行事曆從檔案匯入行事曆資料庫。例如:
csimport -c bkamdar calendar bkamdar.ics
在 LDAP 目錄伺服器上,使用D.3 csattribute公用程式更新行事曆所有者的 icsDWPHost LDAP 屬性,以指向新的後端伺服器。若要更新某個屬性,必須先刪除該屬性,然後使用新值增加該屬性。例如,將新伺服器名稱設定為 sesta.com:
csattribute -a icsDWPHost delete bkamdar csattribute -a icsDWPHost=sesta.com add bkamdar |
在新伺服器上,使用使用者行事曆的D.19 csuser公用程式啟用行事曆使用者。例如:
csuser enable bkamdar
在新伺服器上,使用以下指令驗證這些屬性是否正確以及每個行事曆的移動是否正確。例如:
cscal -v -o bkamdar list bkamdar ... csattribute -v list bkamdar |
在原始伺服器上,刪除您剛移動的所有行事曆。例如:
cscal -o bkamdar delete bkamdar
-o 選項會刪除主要所有者為 bkamdar 的所有行事曆。
如果您使用的是 CLD 快取記憶體選項,將行事曆移至其他後端伺服器之後,則應清除 CLD 快取記憶體,以移除伺服器名稱。CLD 快取記憶體中的過期項目會導致行事曆移動後,前端伺服器無法找到該行事曆。
若要清除 CLD 快取記憶體,請執行以下步驟:
停止 Calendar Server。
移除 /var/opt/SUNWics5/csdb/cld_cache 目錄中的所有檔案,但請勿移除 cld_cache 目錄本身。
重新啟動 Calendar Server。