云助手命令可以在ECS實例中快速完成運行自動化運維腳本、輪詢進程、重置用戶密碼、安裝或卸載軟件、更新應用以及安裝補丁等一些日常任務。命令類型可以是Windows PowerShell腳本、Bat批處理命令和Linux Shell腳本,命令中支持自定義參數,方便設置變量值。
使用限制
在一個阿里云地域下,您可以保存500~50,000條云助手命令,配額隨您的云服務器使用情況可能會增加。您也可以申請提升配額,關于如何查詢及提升配額,請參見配額管理。創建命令會占用云助手命令配額。
說明填寫詳細的配額提升申請理由可提高審批通過率。
創建的腳本在Base64編碼后大小不能超過18 KB。
操作步驟
通過控制臺創建命令
登錄ECS管理控制臺。
在左側導航欄,選擇 。
在頁面左側頂部,選擇云助手命令所屬資源組與所在的地域。
說明設置命令所屬的資源組后,您可以在資源組層面對命令進行權限管理,將所需的RAM權限策略加入指定的資源組以實現資源組鑒權。命令相關的RAM權限策略和資源組鑒權說明,請參見云助手命令自定義策略示例和資源分組和授權。
在頁面右上角,單擊創建/執行命令。
在命令信息區域,設置參數。
名稱
描述
命令來源
選擇命令來源。
輸入命令內容:創建一個新命令。
選擇已保存的命令:選擇已創建的命令。
命令類型
選擇命令類型。
Linux:選擇Shell、Python或者Perl。
Windows:選擇Bat或者PowerShell。
命令內容
編輯或者粘貼您的命令。
有關Shell命令的示例,請參見查看實例系統配置。
創建命令時,您需要自行測試命令的語法、邏輯或算法是否正確。
例如,假設您已在實例中創建了一個/backup目錄(
mkdir /backup
),以下Shell命令將在該目錄中歸檔一個文件。#!/bin/bash OF=/backup/my-backup-$(date +%Y%m%d).tgz tar -cf $OF {{file}}
說明以上示例命令中,
{{file}}
是一個自定義參數,您可以在執行命令時設置為需要歸檔的目標文件,例如/app/usrcredential。自定義參數能滿足動態取值以及一值多用的場景。對于具有安全敏感性的數據以及隨環境變化的數據,建議您設置自定義參數,例如AccessKey、實例ID、授權碼、時間參數、關鍵系統文件等。使用參數
選擇是否啟用參數。
如果您開啟了使用參數功能,在命令內容中以
{{key}}
格式設置自定義參數。說明一份云助手命令中的自定義參數不能超過20個。
您可以指定內置環境參數作為自定義參數,執行命令時無需手動對參數賦值,云助手將為您自動替換為環境中對應的值。支持指定以下內置環境參數:
{{ACS::RegionId}}
:地域ID。{{ACS::AccountId}}
:阿里云主賬號UID。{{ACS::InstanceId}}
:實例ID。說明命令下發到多個實例時,如需指定
{{ACS::InstanceId}}
作為內置環境參數,需確保安裝云助手Agent不低于以下版本:Linux:2.2.3.309
Windows:2.1.3.309
{{ACS::InstanceName}}
:實例名稱。說明命令下發到多個實例時,如需指定
{{ACS::InstanceName}}
作為內置環境參數,需確保安裝云助手Agent不低于以下版本:Linux:2.2.3.344
Windows:2.1.3.344
{{ACS::InvokeId}}
:命令執行ID。說明如需指定
{{ACS::InvokeId}}
作為內置環境參數,需確保安裝云助手Agent不低于以下版本:Linux:2.2.3.309
Windows:2.1.3.309
{{ACS::CommandId}}
:命令ID。說明通過調用RunCommand接口執行命令時,如需指定
{{ACS::CommandId}}
作為內置環境參數,需確保安裝云助手Agent不低于以下版本:Linux:2.2.3.309
Windows:2.1.3.309
執行計劃
選擇命令執行計劃。
立即執行:單擊執行或執行并保存后,系統立即執行命令。
系統下一次啟動后:單擊執行或執行并保存后,實例下次啟動時執行命令。
系統每次啟動后:單擊執行或執行并保存后,實例每次啟動時執行命令。
定時執行:單擊執行或執行并保存后,系統在設置的時間間隔或者時間點執行命令。定時執行包括以下幾種方式:
固定時間間隔執行:基于Rate表達式,按照設置的時間間隔執行命令。時間間隔支持按秒、分鐘、小時和天來選擇,適用于在固定時間間隔執行任務的場景。
說明固定時間間隔執行有以下限制條件:
設置的時間間隔不大于7天、不小于60秒,且需大于定時任務的超時時間。
執行間隔只基于固定頻率,與任務實際執行需要的時間無關。例如設置每5分鐘執行一次命令,任務需要2分鐘執行完成,則在任務完成3分鐘后繼續執行下一輪。
創建任務時不會立即執行。例如設置每5分鐘執行一次命令,創建任務時不會立即執行一次命令,而是在任務創建完成后的5分鐘后開始執行。
僅在指定時間執行一次:按照設置的時區和執行時間點執行一次命令。
例如設置執行時間為2022-05-17 17:30:50,時區為(GMT+8:00) Asia/Shanghai,即表示系統會在中國/上海時間,2022年05月17日17點30分50秒執行一次命令。
基于時鐘定時執行:基于Cron表達式,按照設置的定時任務執行命令。重復頻率可精確到秒、分鐘、小時、日期、月份、星期、年份,在指定的時區下,根據Cron表達式推算定時任務執行時間并執行。配置靈活,適用于較復雜的定時任務執行場景。關于Cron表達式的更多信息,請參見Cron表達式。
說明設置的最小時間間隔需大于或等于定時任務的超時時間,且不小于10 秒。
例如設置重復頻率為0 0 12 ? * WED 2022,時區為(GMT+8:00) Asia/Shanghai,即表示系統會在中國/上海時間,2022年每個星期三中午12:00執行命令。
命令名稱
設置命令名稱。
命令描述
設置命令的描述信息。建議設置命令用途等信息,方便后續管理維護。
執行用戶
在ECS實例中執行命令的用戶名稱。
使用最小權限執行命令是權限管理的最佳實踐,建議您以普通用戶身份執行云助手命令。更多信息,請參見設置普通用戶執行云助手命令。
默認情況下,在Linux實例中以root用戶執行命令,在Windows實例中以System用戶執行命令。
執行路徑
自定義命令的執行路徑。默認路徑如下:
Linux:默認在root用戶的/home目錄。
Windows:默認在C:\Windows\system32目錄。
超時時間
設置命令在實例中的超時時間,當執行命令的任務超時后,云助手將強制終止任務進程。
單位為秒,默認為60秒,最小為10秒。如果您設置的超時時間小于10秒,為確保命令執行成功,會被系統設置為10秒。
標簽
設置命令的標簽鍵和標簽值,方便后續分類管理維護。
說明當您在選擇實例后,單擊執行并保存時,系統會同時為命令和命令執行設置標簽信息。
當您在選擇實例后,單擊執行時,系統只會為命令設置標簽信息。
在選擇實例和選擇托管實例區域,選中需要執行命令的目標實例。
說明托管實例是云助手托管的非阿里云服務器,更多信息,請參見阿里云托管實例。
單擊保存。
通過CLI創建命令
請求示例
調用CreateCommand接口創建一條名為update的云助手命令,用于更新系統。
aliyun ecs CreateCommand --RegionId 'cn-hangzhou' \
--CommandContent 'eXVtIHVwZGF0ZSAteQ==' \
--Type 'RunShellScript' \
--Name 'update' \
--Description 'update' \
--output cols=CommandId
半角單引號('')內為參數的示例取值,您需要根據實際情況修改。
主要參數說明如下表所示,更多參數說明,請參見CreateCommand。
名稱 | 示例 | 描述 |
RegionId | cn-hangzhou | 地域ID。 |
Name | update | 命令名稱。 |
Type | RunShellScript | 命令類型。
|
CommandContent | eXVtIHVwZGF0ZSAteQ== | 通過Base64編碼后的命令內容。 |
Description | update | 命令的描述信息。 |
返回示例
CommandId
---------
c-hz018qng4on****
后續步驟
創建命令后,您可以在命令列表頁簽中查看具體信息。如果需要對指定實例執行此命令,請參見執行命令。
如果您創建的命令使用了參數,執行命令時,您需要在命令參數欄中填寫參數取值。