You can create and run a command simultaneously by using the immediate execution feature.
Prerequisites
The instances on which you want to run a command are in the Running state.
You can retain up to 500 to 10,000 Cloud Assistant commands within an Alibaba Cloud region. This quota may increase based on your Elastic Compute Service (ECS) usage. For more information about how to view the quota, see Step 1: View resource quotas. If you click Run when you create a command in the Create Command panel, the command does not count in your command quota.
NoteYou can also call the DescribeAccountAttributes operation with AttributeName.N set to max-axt-command-count to query the maximum number of Cloud Assistant commands that you can retain within a region.
Cloud Assistant Agent is installed on the instance. For more information, see Install the Cloud Assistant Agent.
To ensure that scheduled tasks can run as expected, make sure that the version of Cloud Assistant Agent is not earlier than the following ones. A scheduled task can run a command at a specified interval, run a command only once at a specified time, or run a command based on a schedule defined by a cron expression with a specified year or time zone.
Linux: 2.2.3.282
Windows: 2.1.3.282
If the
ClientNeedUpgrade
error code is returned, update Cloud Assistant Agent to the latest version. For information about how to update the Cloud Assistant Agent, see Upgrade or disable upgrades for Cloud Assistant Agent.
Background information
Before you use the immediate execution feature, take note of the following items:
The size of the Base64-encoded script has the following limits:
If you want to instantly run and save the command by clicking Execute and Save, the script cannot exceed 18 KB in size.
If you want to instantly run but not save the command by clicking Run, the script cannot exceed 24 KB in size.
You can specify up to 20 custom parameters in a single Cloud Assistant command.
You can call an API operation to run a command on up to 50 instances.
When you create a command, make sure that the syntax, logic, or algorithm associated with the command is correct.
For example, assume that you have created a /backup directory (
mkdir /backup
) on an instance. You can run the following shell commands to archive a file in this directory:#!/bin/bash OF=/backup/my-backup-$(date +%Y%m%d).tgz tar -cf $OF {{file}}
NoteIn the preceding example,
{{file}}
is a custom parameter. Replace {{file}} with the name of the file that you want to archive. Example: /app/usrcredential. Custom parameters can be used in scenarios that require dynamic values and values that are shared across multiple commands. We recommend that you specify custom parameters for sensitive data or data that changes with the environment, such as AccessKey pairs, instance IDs, authorization codes, time parameters, and critical system files.
Run Cloud Assistant commands by using the ECS console
Log on to the ECS console.
In the left-side navigation pane, choose .
In the upper-left corner of the top navigation bar, select a region.
In the upper-right corner, click Create or Run Command.
In the Command Information section of the Create Command panel, configure the parameters described in the following table.
Parameter
Description
Command Source
Select the command source.
Enter Command Content: Create a command.
Select Saved Command: Select an existing command.
Command Name
Enter a name for the command.
Execution Plan
Select a plan on how to run the command.
Immediate execution: The command is run immediately after you click Run or Execute and Save.
After the next startup of the system: The command is run the next time the selected instances are started after you click Run or Execute and Save.
After each system startup: The command is run each time the selected instances are started after you click Run or Execute and Save.
Run on Schedule: The command is run at a specified interval, at a specified time, or on a schedule after you click Run or Execute and Save. If you set Implementation plan to Run on Schedule, the following options are available:
Run at Fixed Interval: Use a rate expression to specify an interval at which you want to run the command. You can specify the interval in seconds, minutes, hours, or days. This option is suitable when you want to execute command execution tasks at a fixed interval.
NoteWhen you specify an interval, take note of the following limits:
The specified interval can range from 60 seconds to 7 days and must be longer than the timeout period of the scheduled task.
The interval is the amount of time elapsed between two consecutive executions and is irrelevant to the amount of time required to run the command once. For example, you set the interval to 5 minutes and the amount of time required to run the command once is 2 minutes. Each time the command is run, the system waits 3 minutes before the system re-runs the command.
A task is not executed immediately after the task is created. For example, you set the interval to 5 minutes and create a task to run the command. The task runs 5 minutes after it is created.
Run Only Once at Specified Time: Specify a point in time and a time zone to run the command only once.
For example, if you set Execution Time to May 17, 2022, 17:30:50 and Time Zone to (GMT+08:00) Asia/Shanghai, the command was run only once at 17:30:50 on May 17, 2022 (UTC+8).
Run on Clock-based Schedule: Use a cron expression to specify a schedule on which you want to run the command. Specify a schedule that is accurate to the second, minute, hour, day of the month, month, day of the week, or year, and select a time zone from the Time Zone drop-down list. The system calculates the schedule based on the cron expression and time zone and runs the command as scheduled. This option provides flexibility and is suitable when you want to execute command execution tasks on a schedule. For more information about cron expressions, see Run a command on a schedule.
NoteThe minimum interval must be 10 seconds or more and cannot be shorter than the timeout period of scheduled executions.
For example, if you set Execution Frequency to 0 0 12 ? * WED 2022 and Time Zone to (GMT+08:00) Asia/Shanghai, the system runs the command at 12:00:00 every Wednesday in 2022 (UTC+8).
Command Type
Select a command type.
For Linux instances, select Shell, Python, or Perl.
For Windows instances, select Bat or PowerShell.
Command
Enter or paste the content of the command.
For information about sample shell commands, see View instance configurations.
Use Parameters
Specify whether to use parameters.
If you turn on Use Parameters, specify custom parameters in the
{{key}}
format in the Command field.You can specify built-in environment variables as custom parameters. Then, when you run this command, Cloud Assistant automatically replaces the values in the commands with the environment variables. You can specify the following built-in environment variables:
{{ACS::RegionId}}
: the ID of the region.{{ACS::AccountId}}
: the UID of the Alibaba Cloud account.{{ACS::InstanceId}}
: the ID of the instance.NoteWhen the command is run on multiple instances, if you want to specify
{{ACS::InstanceId}}
as a built-in environment variable, make sure that the version of the Cloud Assistant Agent is not earlier than one of the following ones:Linux: 2.2.3.309
Windows: 2.1.3.309
{{ACS::InstanceName}}
: the name of the instance.NoteWhen the command is run on multiple instances, if you want to specify
{{ACS::InstanceName}}
as a built-in environment variable, make sure that the version of the Cloud Assistant Agent is not earlier than one of the following ones:Linux: 2.2.3.344
Windows: 2.1.3.344
{{ACS::InvokeId}}
: the ID of the command execution task.NoteIf you want to specify
{{ACS::InvokeId}}
as a built-in environment variable, make sure that the version of the Cloud Assistant Agent is not earlier than one of the following ones:Linux: 2.2.3.309
Windows: 2.1.3.309
{{ACS::CommandId}}
: the ID of the command.NoteWhen you call the RunCommand operation, if you want to specify
{{ACS::CommandId}}
as a built-in environment variable, make sure that the version of the Cloud Assistant Agent is not earlier than one of the following ones:Linux: 2.2.3.309
Windows: 2.1.3.309
Command Description
Enter a description for the command. We recommend that you enter identifiable command information, such as the purpose of the command, for easy management and maintenance.
Username
Specify the username that you use to run the command on ECS instances.
For security purposes, we recommend that you run Cloud Assistant commands based on the least privilege principle as a regular user. For more information, see Run Cloud Assistant commands as a regular user.
By default, Cloud Assistant commands are run by the root user on Linux instances and by the system user on Windows instances.
Execution Path
Specify an execution path for the command. Different default execution paths are provided based on the operating system of instances on which the command is run.
For Linux instances, the default execution path is the /home directory of the root user.
For Windows instances, the default execution path is C:\Windows\system32.
Timeout Period
Specify a timeout period for the command to run on instances. If a task that runs the command times out, Cloud Assistant forcefully terminates the task process.
Unit: seconds. Default value: 60. Minimum value: 10. If you set Timeout Period to a value of less than 10, the system changes the value to 10 to ensure that the command can be run.
Tag
Specify a tag that you want to add to the command for subsequent classification and management. Tag Key: the key of the tag. Tag Value: the value of the tag.
NoteIf you select instances and click Execute and Save, the system adds the tag to the command and the command execution task.
If you select instances and click Run, the system adds the tag only to the command.
In the Select Instances and Select Managed Instances sections, select the instances on which you want to run the command.
NoteA managed instance is an instance that is managed by Cloud Assistant but not provided by Alibaba Cloud. For more information, see Manage servers that are not provided by Alibaba Cloud.
Click Execute and Save or Run to immediately run the command task.
Run Cloud Assistant commands by using Alibaba Cloud CLI
Example on how to run a command only once
Sample requests:
Call the RunCommand operation to create and run a Cloud Assistant command named update to update the operating system on instances.
aliyun ecs RunCommand --RegionId 'cn-hangzhou' \ --Name 'update' --Username 'ecs-user' --Type 'RunShellScript' \ --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \ --Timeout '60' --RepeatMode 'Once' --ContentEncoding 'Base64' \ --InstanceId.1 'i-bp12e0ib2ztibede****'
NoteValues enclosed in single quotation marks ('') are example values of the parameters. Configure the parameters based on actual conditions.
Parameter
Example
Description
RegionId
cn-hangzhou
The ID of the region.
Name
update
The name of the command.
Username
ecs-user
The username to use to run the command on ECS instances.
Type
RunShellScript
The type of the command.
For Linux instances, set the value to RunShellScript.
For Windows instances, set the value to RunBatScript or RunPowershellScript.
CommandContent
eXVtIHVwZGF0ZSAteQ==
The Base64-encoded content of the command.
Timeout
60
The timeout period.
RepeatMode
Once
The execution plan.
ContentEncoding
Base64
The encoding format.
InstanceId.1
i-bp12e0ib2ztibede****
The ID of ECS instance N on which to run the command. In this example, the N value is 1.
For more information, see RunCommand.
Sample responses:
{ "CommandId": "c-hz018qlm868****", "InvokeId": "t-hz018qlm86d****", "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F" }
Example on how to run a command on a schedule
Sample requests:
Call the RunCommand operation to create and run a Cloud Assistant command named update to update the operating system on instances at 12:00 every day in 2022 (UTC+8).
aliyun ecs RunCommand --RegionId 'cn-hangzhou' \ --Name 'update' --Description 'update' --Username 'ecs-user' --Type 'RunShellScript' \ --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \ --Timeout '60' --RepeatMode 'Period' --ContentEncoding 'Base64' \ --Frequency '0 0 12 * * ? 2022 Asia/Shanghai' \ --InstanceId.1 'i-bp12e0ib2ztibede****'
NoteValues enclosed in single quotation marks ('') are example values of the parameters. Configure the parameters based on actual conditions.
Parameter
Example
Description
RegionId
cn-hangzhou
The ID of the region.
Name
update
The name of the command.
Description
update
The description of the command.
Username
ecs-user
The username that you use to run the command on ECS instances.
Type
RunShellScript
The type of the command.
For Linux instances, set the value to RunShellScript.
For Windows instances, set the value to RunBatScript or RunPowershellScript.
CommandContent
eXVtIC15IHVwZGF0ZQ==
The Base64-encoded content of the command.
Timeout
60
The timeout period.
RepeatMode
Period
The execution plan.
ContentEncoding
Base64
The encoding format.
Frequency
0 0 12 * * ? 2022 Asia/Shanghai'
The schedule on which you want to run the command.
InstanceId.1
i-bp12e0ib2ztibede****
The ID of ECS instance N on which to run the command. In this example, the N value is 1.
For more information, see RunCommand.
Sample responses:
{ "CommandId": "c-hz018qlm868****", "InvokeId": "t-hz018qlm86d****", "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F" }