All Products
Search
Document Center

Elastic Compute Service:Run a command

Last Updated:Jul 21, 2023

After you create a Cloud Assistant command, you can run it on one or more Elastic Compute Service (ECS) instances. The execution status and results of the command on multiple instances do not affect each other.

Prerequisites

Before you run a Cloud Assistant command on ECS instances, make sure that the instances meet the following requirements:
  • The instances are in the Running (Running) state.
  • 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 the Cloud Assistant Agent.

Background information

  • You can call an API operation to run a command on up to 50 instances.

  • If you select more than 50 instances to run a command in the ECS console, the system runs the command on the instances in batches.

Procedure in the ECS console

  1. Log on to the ECS console.
  2. In the left-side navigation pane, choose Maintenance & Monitoring > ECS Cloud Assistant.
  3. In the upper-left corner of the top navigation bar, select a region. Region
  4. On the Commands tab of the Cloud Assistant page, find the command that you want to run and click Create Task in the Actions column.
  5. In the Create Task panel, configure parameters.
    1. In the Command Information section, check command content and configure the parameters that are described in the following table.
      ParameterDescription
      CommandClick View to view the command content.
      Execution PlanSelect 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.

          Note

          When 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.

          Note

          The 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).

      UsernameSpecify the username that you want to use to run the command on ECS instances.

      For security purposes, we recommend that you run Cloud Assistant commands as a regular user based on the least privilege principle. 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.

      Timeout PeriodSpecify a timeout period for the task that runs the command on instances. If the command task times out, Cloud Assistant forcefully terminates the task process.

      Unit: seconds. By default, the value of this parameter is set to the value of the Timeout Period parameter that you specify for the command.

      Note This timeout period is applicable only to the command task. When you modify the timeout period of the command task, the timeout period of the command is not affected.
      TagSpecify Tag Key and Tag Value to add tags for the command task.
    2. In the Select Instances and Select Managed Instances sections, select one or more instances.
      If you have multiple instances, you can search for the instances on which you want to run the command by ID, name, or tag, and filter results by the status of Cloud Assistant Agent.
      Note

      A 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.

  6. Click Create Task.

Procedure by using the CLI

  1. Optional: Check the state of the instances on which you want to run a command. If the instances are not in the Running (Running) state, call the StartInstance operation to start the instances.
    aliyun ecs StartInstance --InstanceId 'i-bp1f4f6o8lv0wqof****' 
    Note Values enclosed in single quotation marks ('') are example values of the parameters. You must configure the parameters based on actual conditions.

    For more information, see StartInstance.

  2. Optional:Call the DescribeCloudAssistantStatus operation to check whether Cloud Assistant Agent is installed on the instances.Cloud Assistant Agent
    aliyun ecs DescribeCloudAssistantStatus --RegionId 'cn-hangzhou' \
    --InstanceId.1 'i-bp1f4f6o8lv0wqof****' 
    If Cloud Assistant Agent is installed on the instances, the value of CloudAssistantStatus is true in the response. If Cloud Assistant Agent is not installed on the instances, call the InstallCloudAssistant operation to install Cloud Assistant Agent on the instances. For more information, see DescribeCloudAssistantStatus and InstallCloudAssistant.
  3. Call the InvokeCommand operation to run a created Cloud Assistant command on one or more instances.
    aliyun ecs InvokeCommand --RegionId 'cn-hangzhou' \
    --InstanceId.1 'i-bp1f4f6o8lv0wqof****' \
    --InstanceId.2 'i-bp137qu6142s3mhm****' \
    --CommandId 'c-hz018qp243j****' \
    --Timed 'false'
    ParameterExampleDescription
    RegionIdcn-hangzhouThe region ID of the command.
    InstanceId.1i-bp1f4f6o8lv0wqof****The ID of the first instance on which to run the command.
    InstanceId.2i-bp137qu6142s3mhm****The ID of the second instance on which to run the command.
    CommandIdc-hz018qp243j****The ID of the command.
    TimedfalseSpecifies whether to run the command on a schedule.

    To run the command on a schedule, set Timed to true and set Frequency to specify the schedule. You can configure a command to run at a fixed interval based on a rate expression, run only once at a specified time, or run at scheduled times based on a cron expression. For example, if you specify a cron expression of 0 */20 * * * ?, the command is run every 20 minutes. For more information, see Run a command on a schedule.

    For more information, see InvokeCommand.