Shell script xuất ra bàn điều khiển

Khi bạn khởi chạy một phiên bản trong Amazon EC2, bạn có tùy chọn chuyển dữ liệu người dùng sang phiên bản có thể được sử dụng để thực hiện các tác vụ cấu hình tự động phổ biến và thậm chí chạy tập lệnh sau khi phiên bản bắt đầu. Bạn có thể chuyển hai loại dữ liệu người dùng sang Amazon EC2. tập lệnh shell và chỉ thị khởi tạo đám mây. Bạn cũng có thể chuyển dữ liệu này vào trình hướng dẫn khởi chạy phiên bản dưới dạng văn bản thuần túy, dưới dạng tệp [điều này hữu ích khi khởi chạy phiên bản bằng công cụ dòng lệnh] hoặc dưới dạng văn bản được mã hóa base64 [đối với lệnh gọi API]

Nếu bạn quan tâm đến các tình huống tự động hóa phức tạp hơn, hãy cân nhắc sử dụng AWS CloudFormation và AWS OpsWorks. Để biết thêm thông tin, hãy xem Hướng dẫn sử dụng AWS CloudFormation và Hướng dẫn sử dụng AWS OpsWorks

Để biết thông tin về việc chạy các lệnh trên phiên bản Windows của bạn khi khởi chạy, hãy xem Chạy các lệnh trên phiên bản Windows của bạn khi khởi chạy và Quản lý cấu hình phiên bản Windows trong Hướng dẫn sử dụng Amazon EC2 dành cho Phiên bản Windows

Trong các ví dụ sau, các lệnh từ Cài đặt máy chủ web LAMP trên Amazon Linux 2 được chuyển đổi thành tập lệnh shell và một tập hợp các lệnh khởi tạo đám mây chạy khi phiên bản khởi chạy. Trong mỗi ví dụ, các tác vụ sau được thực hiện bởi dữ liệu người dùng

  • Các gói phần mềm phân phối được cập nhật

  • Máy chủ web cần thiết, các gói

    output : { all : '| tee -a /var/log/cloud-init-output.log' }
    0 và
    output : { all : '| tee -a /var/log/cloud-init-output.log' }
    1 đã được cài đặt

  • Dịch vụ

    output : { all : '| tee -a /var/log/cloud-init-output.log' }
    2 được bắt đầu và bật qua systemctl

  • output : { all : '| tee -a /var/log/cloud-init-output.log' }
    3 được thêm vào nhóm apache

  • Quyền sở hữu và quyền truy cập tệp thích hợp được đặt cho thư mục web và các tệp chứa trong đó

  • Một trang web đơn giản được tạo để kiểm tra máy chủ web và công cụ PHP

điều kiện tiên quyết

Các ví dụ trong chủ đề này giả định như sau

  • Phiên bản của bạn có tên DNS công cộng có thể truy cập được từ internet. Để biết thêm thông tin, hãy xem Tự động gán IP Công cộng trong phần và

  • Nhóm bảo mật được liên kết với phiên bản của bạn được định cấu hình để cho phép lưu lượng SSH [cổng 22] để bạn có thể kết nối với phiên bản để xem các tệp nhật ký đầu ra. Để biết thêm thông tin, xem

  • Phiên bản của bạn được khởi chạy với AMI Amazon Linux 2. Các hướng dẫn này được thiết kế để sử dụng với Amazon Linux 2 và các lệnh cũng như chỉ thị này có thể không hoạt động đối với các bản phân phối Linux khác. Để biết thêm thông tin về các bản phân phối khác, chẳng hạn như hỗ trợ cho cloud-init, hãy xem tài liệu cụ thể của chúng

Dữ liệu người dùng và shell script

Nếu bạn đã quen với shell scripting, đây là cách dễ nhất và đầy đủ nhất để gửi hướng dẫn tới một phiên bản khi khởi chạy. Việc thêm các tác vụ này vào thời điểm khởi động sẽ tăng thêm lượng thời gian cần thiết để khởi động phiên bản. Bạn nên dành thêm vài phút để hoàn thành các tác vụ trước khi kiểm tra xem tập lệnh người dùng đã hoàn thành thành công chưa

Theo mặc định, tập lệnh dữ liệu người dùng và chỉ thị khởi tạo trên đám mây chỉ chạy trong chu kỳ khởi động khi bạn khởi chạy phiên bản lần đầu tiên. Bạn có thể cập nhật cấu hình của mình để đảm bảo rằng tập lệnh dữ liệu người dùng và lệnh khởi tạo trên đám mây của bạn chạy mỗi khi bạn khởi động lại phiên bản của mình. Để biết thêm thông tin, hãy xem Làm cách nào tôi có thể sử dụng dữ liệu người dùng để tự động chạy tập lệnh với mỗi lần khởi động lại phiên bản Amazon EC2 Linux của tôi? trong Trung tâm kiến ​​thức AWS

Tập lệnh trình bao dữ liệu người dùng phải bắt đầu bằng các ký tự

output : { all : '| tee -a /var/log/cloud-init-output.log' }
4 và đường dẫn đến trình thông dịch mà bạn muốn đọc tập lệnh [thường là /bin/bash]. Để có phần giới thiệu tuyệt vời về shell scripting, hãy xem HƯỚNG DẪN LẬP TRÌNH BASH trong Dự án Tài liệu Linux [tldp. tổ chức]

Các tập lệnh được nhập dưới dạng dữ liệu người dùng được chạy với tư cách là người dùng

output : { all : '| tee -a /var/log/cloud-init-output.log' }
5, vì vậy không sử dụng lệnh sudo trong tập lệnh. Hãy nhớ rằng mọi tệp bạn tạo sẽ thuộc quyền sở hữu của
output : { all : '| tee -a /var/log/cloud-init-output.log' }
5; . Ngoài ra, vì tập lệnh không chạy tương tác, nên bạn không thể bao gồm các lệnh yêu cầu phản hồi của người dùng [chẳng hạn như cập nhật yum không có cờ
output : { all : '| tee -a /var/log/cloud-init-output.log' }
7]

Nếu sử dụng API AWS, bao gồm cả AWS CLI, trong tập lệnh dữ liệu người dùng, thì bạn phải sử dụng cấu hình phiên bản khi khởi chạy phiên bản. Cấu hình phiên bản cung cấp thông tin đăng nhập AWS phù hợp theo yêu cầu của tập lệnh dữ liệu người dùng để thực hiện lệnh gọi API. Để biết thêm thông tin, hãy xem Sử dụng cấu hình phiên bản trong Hướng dẫn sử dụng IAM. Các quyền bạn gán cho vai trò IAM tùy thuộc vào dịch vụ bạn đang gọi bằng API. Để biết thêm thông tin, hãy xem Vai trò IAM cho Amazon EC2

Tệp nhật ký đầu ra khởi tạo trên đám mây ghi lại đầu ra của bảng điều khiển để dễ dàng gỡ lỗi tập lệnh của bạn sau khi khởi chạy nếu phiên bản không hoạt động theo cách bạn dự định. Để xem tệp nhật ký, hãy kết nối với phiên bản và mở

output : { all : '| tee -a /var/log/cloud-init-output.log' }
8

Khi tập lệnh dữ liệu người dùng được xử lý, nó sẽ được sao chép vào và chạy từ

output : { all : '| tee -a /var/log/cloud-init-output.log' }
9/. Tập lệnh không bị xóa sau khi chạy. Đảm bảo xóa tập lệnh dữ liệu người dùng khỏi
output : { all : '| tee -a /var/log/cloud-init-output.log' }
9/ trước khi bạn tạo AMI từ phiên bản. Nếu không, tập lệnh sẽ tồn tại trong thư mục này trên mọi phiên bản được khởi chạy từ AMI

Dữ liệu người dùng và bảng điều khiển

Bạn có thể chỉ định dữ liệu người dùng phiên bản khi khởi chạy phiên bản. Nếu ổ đĩa gốc của phiên bản là ổ đĩa EBS, bạn cũng có thể dừng phiên bản và cập nhật dữ liệu người dùng của nó

Chỉ định dữ liệu người dùng phiên bản khi khởi chạy

Thực hiện theo các thủ tục cho. Trường dữ liệu Người dùng nằm trong phần của trình hướng dẫn phiên bản khởi chạy. Nhập tập lệnh shell của bạn vào trường Dữ liệu người dùng rồi hoàn tất quy trình khởi chạy phiên bản

Trong tập lệnh mẫu bên dưới, tập lệnh tạo và định cấu hình máy chủ web của chúng tôi

#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
yum install -y httpd mariadb-server
systemctl start httpd
systemctl enable httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
echo "" > /var/www/html/phpinfo.php

Dành đủ thời gian để phiên bản khởi chạy và chạy các lệnh trong tập lệnh của bạn, sau đó kiểm tra xem tập lệnh của bạn đã hoàn thành các tác vụ mà bạn dự định chưa

Ví dụ của chúng tôi, trong trình duyệt web, hãy nhập URL của tệp kiểm tra PHP mà tập lệnh đã tạo. URL này là địa chỉ DNS công cộng của phiên bản của bạn, theo sau là dấu gạch chéo lên và tên tệp

//my.public.dns.amazonaws.com/phpinfo.php

Bạn sẽ thấy trang thông tin PHP. Nếu bạn không thể xem trang thông tin PHP, hãy kiểm tra xem nhóm bảo mật bạn đang sử dụng có chứa quy tắc cho phép lưu lượng HTTP [cổng 80] không. Để biết thêm thông tin, xem

[Tùy chọn] Nếu tập lệnh của bạn không hoàn thành các tác vụ mà bạn mong đợi hoặc nếu bạn chỉ muốn xác minh rằng tập lệnh của mình đã hoàn thành mà không có lỗi, hãy kết nối với phiên bản, kiểm tra tệp nhật ký đầu ra khởi tạo trên đám mây [

output : { all : '| tee -a /var/log/cloud-init-output.log' }
8] và xem

Để biết thêm thông tin gỡ lỗi, bạn có thể tạo kho lưu trữ nhiều phần Mime bao gồm phần dữ liệu khởi tạo trên đám mây với chỉ thị sau

output : { all : '| tee -a /var/log/cloud-init-output.log' }

Chỉ thị này gửi đầu ra lệnh từ tập lệnh của bạn tới

output : { all : '| tee -a /var/log/cloud-init-output.log' }
8. Để biết thêm thông tin về các định dạng dữ liệu khởi tạo trên đám mây và tạo kho lưu trữ đa phần Mime, hãy xem Định dạng khởi tạo trên đám mây

Xem và cập nhật dữ liệu người dùng phiên bản

Để cập nhật dữ liệu người dùng phiên bản, trước tiên bạn phải dừng phiên bản. Nếu phiên bản đang chạy, bạn có thể xem dữ liệu người dùng nhưng không thể sửa đổi dữ liệu đó

Khi bạn dừng một phiên bản, dữ liệu trên mọi ổ lưu trữ phiên bản sẽ bị xóa. Để giữ dữ liệu từ khối lượng lưu trữ phiên bản, hãy đảm bảo sao lưu dữ liệu đó vào bộ lưu trữ liên tục

Bảng điều khiển mới

Để sửa đổi dữ liệu người dùng cá thể

  1. Mở bảng điều khiển Amazon EC2 tại https. // bảng điều khiển. aws. amazon. com/ec2/

  2. Trong ngăn điều hướng, chọn Phiên bản

  3. Chọn phiên bản và chọn Trạng thái phiên bản, Dừng phiên bản. Nếu tùy chọn này bị tắt, thì phiên bản đã bị dừng hoặc thiết bị gốc của phiên bản là ổ lưu trữ phiên bản

  4. Khi được nhắc xác nhận, hãy chọn Dừng. Có thể mất vài phút để phiên bản dừng lại

  5. Với phiên bản vẫn được chọn, hãy chọn Hành động, Cài đặt phiên bản, Chỉnh sửa dữ liệu người dùng

  6. Sửa đổi dữ liệu người dùng nếu cần, sau đó chọn Lưu

  7. Bắt đầu ví dụ. Dữ liệu người dùng mới sẽ hiển thị trên phiên bản của bạn sau khi bạn khởi động phiên bản đó;

Bảng điều khiển cũ

Để sửa đổi dữ liệu người dùng cá thể

  1. Mở bảng điều khiển Amazon EC2 tại https. // bảng điều khiển. aws. amazon. com/ec2/

  2. Trong ngăn điều hướng, chọn Phiên bản

  3. Chọn phiên bản và chọn Hành động, Trạng thái phiên bản, Dừng. Nếu tùy chọn này bị tắt, thì phiên bản đã bị dừng hoặc thiết bị gốc của phiên bản là ổ lưu trữ phiên bản

  4. Khi được nhắc xác nhận, hãy chọn Có, Dừng. Có thể mất vài phút để phiên bản dừng lại

  5. Với phiên bản vẫn được chọn, hãy chọn Hành động, Cài đặt phiên bản, Xem/Thay đổi dữ liệu người dùng

  6. Trong hộp thoại Xem/Thay đổi Dữ liệu Người dùng, hãy cập nhật dữ liệu người dùng rồi chọn Lưu

  7. Khởi động lại phiên bản. Dữ liệu người dùng mới hiển thị trên phiên bản của bạn sau khi bạn khởi động lại phiên bản;

Dữ liệu người dùng và chỉ thị khởi tạo trên đám mây

Gói cloud-init định cấu hình các khía cạnh cụ thể của phiên bản Amazon Linux mới khi phiên bản này được khởi chạy; . Để biết thêm thông tin về các tác vụ cấu hình mà gói cloud-init thực hiện cho các phiên bản Amazon Linux, hãy xem

Các chỉ thị người dùng khởi tạo trên đám mây có thể được chuyển đến một phiên bản khi khởi chạy giống như cách mà một tập lệnh được chuyển, mặc dù cú pháp là khác nhau. Để biết thêm thông tin về cloud-init, hãy xem http. // đám mây. đọcthedocs. org/vi/mới nhất/chỉ mục. html

Theo mặc định, tập lệnh dữ liệu người dùng và chỉ thị khởi tạo trên đám mây chỉ chạy trong chu kỳ khởi động khi bạn khởi chạy phiên bản lần đầu tiên. Bạn có thể cập nhật cấu hình của mình để đảm bảo rằng tập lệnh dữ liệu người dùng và lệnh khởi tạo trên đám mây của bạn chạy mỗi khi bạn khởi động lại phiên bản của mình. Để biết thêm thông tin, hãy xem Làm cách nào tôi có thể sử dụng dữ liệu người dùng để tự động chạy tập lệnh với mỗi lần khởi động lại phiên bản Amazon EC2 Linux của tôi? trong Trung tâm kiến ​​thức AWS

Việc thêm các tác vụ này vào thời điểm khởi động sẽ tăng thêm lượng thời gian cần thiết để khởi động một phiên bản. Bạn nên cho phép thêm một vài phút để các tác vụ hoàn thành trước khi kiểm tra xem các chỉ thị dữ liệu người dùng của bạn đã hoàn thành chưa

Để chuyển các lệnh khởi tạo trên đám mây tới một phiên bản có dữ liệu người dùng

  1. Thực hiện theo các thủ tục cho. Trường dữ liệu Người dùng nằm trong phần của trình hướng dẫn phiên bản khởi chạy. Nhập văn bản chỉ thị khởi tạo đám mây của bạn vào trường Dữ liệu người dùng rồi hoàn tất quy trình khởi chạy phiên bản

    Trong ví dụ bên dưới, lệnh tạo và định cấu hình máy chủ web trên Amazon Linux 2. Cần có dòng

    #cloud-config
    repo_update: true
    repo_upgrade: all
    
    packages:
     - httpd
     - mariadb-server
    
    runcmd:
     - [ sh, -c, "amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2" ]
     - systemctl start httpd
     - sudo systemctl enable httpd
     - [ sh, -c, "usermod -a -G apache ec2-user" ]
     - [ sh, -c, "chown -R ec2-user:apache /var/www" ]
     - chmod 2775 /var/www
     - [ find, /var/www, -type, d, -exec, chmod, 2775, {}, \; ]
     - [ find, /var/www, -type, f, -exec, chmod, 0664, {}, \; ]
     - [ sh, -c, 'echo "" > /var/www/html/phpinfo.php' ]
    4 ở trên cùng để xác định các lệnh dưới dạng chỉ thị khởi tạo trên đám mây

    #cloud-config
    repo_update: true
    repo_upgrade: all
    
    packages:
     - httpd
     - mariadb-server
    
    runcmd:
     - [ sh, -c, "amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2" ]
     - systemctl start httpd
     - sudo systemctl enable httpd
     - [ sh, -c, "usermod -a -G apache ec2-user" ]
     - [ sh, -c, "chown -R ec2-user:apache /var/www" ]
     - chmod 2775 /var/www
     - [ find, /var/www, -type, d, -exec, chmod, 2775, {}, \; ]
     - [ find, /var/www, -type, f, -exec, chmod, 0664, {}, \; ]
     - [ sh, -c, 'echo "" > /var/www/html/phpinfo.php' ]
  2. Dành đủ thời gian để phiên bản khởi chạy và chạy các lệnh trong dữ liệu người dùng của bạn, sau đó kiểm tra xem các lệnh của bạn đã hoàn thành các tác vụ mà bạn dự định chưa

    Đối với ví dụ này, trong trình duyệt web, hãy nhập URL của tệp kiểm tra PHP mà các lệnh đã tạo. URL này là địa chỉ DNS công cộng của phiên bản của bạn, theo sau là dấu gạch chéo lên và tên tệp

    //my.public.dns.amazonaws.com/phpinfo.php

    Bạn sẽ thấy trang thông tin PHP. Nếu bạn không thể xem trang thông tin PHP, hãy kiểm tra xem nhóm bảo mật bạn đang sử dụng có chứa quy tắc cho phép lưu lượng HTTP [cổng 80] không. Để biết thêm thông tin, xem

  3. [Tùy chọn] Nếu lệnh của bạn không hoàn thành nhiệm vụ mà bạn mong đợi hoặc nếu bạn chỉ muốn xác minh rằng lệnh của mình đã hoàn thành mà không có lỗi, hãy kết nối với phiên bản, kiểm tra tệp nhật ký đầu ra [

    output : { all : '| tee -a /var/log/cloud-init-output.log' }
    8] và tìm thông báo lỗi . Để biết thêm thông tin gỡ lỗi, bạn có thể thêm dòng sau vào chỉ thị của mình

    output : { all : '| tee -a /var/log/cloud-init-output.log' }

    Lệnh này gửi đầu ra runcmd tới

    output : { all : '| tee -a /var/log/cloud-init-output.log' }
    8

Dữ liệu người dùng và AWS CLI

Bạn có thể sử dụng AWS CLI để chỉ định, sửa đổi và xem dữ liệu người dùng cho phiên bản của mình. Để biết thông tin về cách xem dữ liệu người dùng từ phiên bản của bạn bằng siêu dữ liệu phiên bản, hãy xem

Trên Windows, bạn có thể sử dụng Công cụ AWS dành cho Windows PowerShell thay vì sử dụng AWS CLI. Để biết thêm thông tin, hãy xem trong Hướng dẫn sử dụng Amazon EC2 dành cho Phiên bản Windows

Thí dụ. Chỉ định dữ liệu người dùng khi khởi chạy

Để chỉ định dữ liệu người dùng khi bạn khởi chạy phiên bản của mình, hãy sử dụng lệnh phiên bản chạy với tham số

#cloud-config
repo_update: true
repo_upgrade: all

packages:
 - httpd
 - mariadb-server

runcmd:
 - [ sh, -c, "amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2" ]
 - systemctl start httpd
 - sudo systemctl enable httpd
 - [ sh, -c, "usermod -a -G apache ec2-user" ]
 - [ sh, -c, "chown -R ec2-user:apache /var/www" ]
 - chmod 2775 /var/www
 - [ find, /var/www, -type, d, -exec, chmod, 2775, {}, \; ]
 - [ find, /var/www, -type, f, -exec, chmod, 0664, {}, \; ]
 - [ sh, -c, 'echo "" > /var/www/html/phpinfo.php' ]
7. Với phiên bản chạy, AWS CLI thực hiện mã hóa base64 dữ liệu người dùng cho bạn

Ví dụ sau đây cho thấy cách chỉ định tập lệnh dưới dạng chuỗi trên dòng lệnh

aws ec2 run-instances --image-id ami-abcd1234 --count 1 --instance-type m3.medium \
--key-name my-key-pair --subnet-id subnet-abcd1234 --security-group-ids sg-abcd1234 \
--user-data echo user data

Ví dụ sau đây cho thấy cách chỉ định tập lệnh bằng tệp văn bản. Đảm bảo sử dụng tiền tố

#cloud-config
repo_update: true
repo_upgrade: all

packages:
 - httpd
 - mariadb-server

runcmd:
 - [ sh, -c, "amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2" ]
 - systemctl start httpd
 - sudo systemctl enable httpd
 - [ sh, -c, "usermod -a -G apache ec2-user" ]
 - [ sh, -c, "chown -R ec2-user:apache /var/www" ]
 - chmod 2775 /var/www
 - [ find, /var/www, -type, d, -exec, chmod, 2775, {}, \; ]
 - [ find, /var/www, -type, f, -exec, chmod, 0664, {}, \; ]
 - [ sh, -c, 'echo "" > /var/www/html/phpinfo.php' ]
8 để chỉ định tệp

aws ec2 run-instances --image-id ami-abcd1234 --count 1 --instance-type m3.medium \
--key-name my-key-pair --subnet-id subnet-abcd1234 --security-group-ids sg-abcd1234 \
--user-data file://my_script.txt

Sau đây là một tệp văn bản ví dụ với tập lệnh shell

#!/bin/bash
yum update -y
service httpd start
chkconfig httpd on
Ví dụ. Sửa đổi dữ liệu người dùng của một phiên bản đã dừng

Bạn có thể sửa đổi dữ liệu người dùng của một phiên bản đã dừng bằng lệnh sửa đổi thuộc tính phiên bản. Với thuộc tính phiên bản sửa đổi, AWS CLI không thực hiện mã hóa base64 dữ liệu người dùng cho bạn

  • Trên máy tính Linux, sử dụng lệnh base64 để mã hóa dữ liệu người dùng

    base64 my_script.txt >my_script_base64.txt
  • Trên máy tính Windows, sử dụng lệnh certutil để mã hóa dữ liệu người dùng. Trước khi có thể sử dụng tệp này với AWS CLI, bạn phải xóa dòng đầu tiên [BEGIN CERTIFICATE] và dòng cuối cùng [END CERTIFICATE]

    //my.public.dns.amazonaws.com/phpinfo.php
    0

Sử dụng các tham số

#cloud-config
repo_update: true
repo_upgrade: all

packages:
 - httpd
 - mariadb-server

runcmd:
 - [ sh, -c, "amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2" ]
 - systemctl start httpd
 - sudo systemctl enable httpd
 - [ sh, -c, "usermod -a -G apache ec2-user" ]
 - [ sh, -c, "chown -R ec2-user:apache /var/www" ]
 - chmod 2775 /var/www
 - [ find, /var/www, -type, d, -exec, chmod, 2775, {}, \; ]
 - [ find, /var/www, -type, f, -exec, chmod, 0664, {}, \; ]
 - [ sh, -c, 'echo "" > /var/www/html/phpinfo.php' ]
9 và
//my.public.dns.amazonaws.com/phpinfo.php
0 để sử dụng tệp văn bản được mã hóa để chỉ định dữ liệu người dùng. Đảm bảo sử dụng tiền tố
#cloud-config
repo_update: true
repo_upgrade: all

packages:
 - httpd
 - mariadb-server

runcmd:
 - [ sh, -c, "amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2" ]
 - systemctl start httpd
 - sudo systemctl enable httpd
 - [ sh, -c, "usermod -a -G apache ec2-user" ]
 - [ sh, -c, "chown -R ec2-user:apache /var/www" ]
 - chmod 2775 /var/www
 - [ find, /var/www, -type, d, -exec, chmod, 2775, {}, \; ]
 - [ find, /var/www, -type, f, -exec, chmod, 0664, {}, \; ]
 - [ sh, -c, 'echo "" > /var/www/html/phpinfo.php' ]
8 để chỉ định tệp

//my.public.dns.amazonaws.com/phpinfo.php
1Ví dụ. Xóa dữ liệu người dùng của một phiên bản đã dừng

Để xóa dữ liệu người dùng hiện có, hãy sử dụng lệnh sửa đổi thuộc tính phiên bản như sau

//my.public.dns.amazonaws.com/phpinfo.php
2Ví dụ. Xem dữ liệu người dùng

Để truy xuất dữ liệu người dùng cho một phiên bản, hãy sử dụng lệnh description-instance-attribute. Với thuộc tính mô tả phiên bản, AWS CLI không thực hiện giải mã base64 dữ liệu người dùng cho bạn

//my.public.dns.amazonaws.com/phpinfo.php
3

Sau đây là ví dụ đầu ra với dữ liệu người dùng base64 được mã hóa

//my.public.dns.amazonaws.com/phpinfo.php
4

  • Trên máy tính Linux, sử dụng tùy chọn

    //my.public.dns.amazonaws.com/phpinfo.php
    2 để lấy dữ liệu người dùng được mã hóa và lệnh base64 để giải mã dữ liệu đó

    //my.public.dns.amazonaws.com/phpinfo.php
    5
  • Trên máy tính Windows, sử dụng tùy chọn

    //my.public.dns.amazonaws.com/phpinfo.php
    2 để lấy dữ liệu người dùng được mã hóa và lệnh certutil để giải mã dữ liệu đó. Lưu ý rằng đầu ra được mã hóa được lưu trữ trong một tệp và đầu ra được giải mã được lưu trữ trong một tệp khác

    //my.public.dns.amazonaws.com/phpinfo.php
    6

Sau đây là ví dụ đầu ra

#!/bin/bash
yum update -y
service httpd start
chkconfig httpd on

Kết hợp các tập lệnh shell và chỉ thị khởi tạo đám mây

Theo mặc định, bạn chỉ có thể bao gồm một loại nội dung trong dữ liệu người dùng tại một thời điểm. Tuy nhiên, bạn có thể sử dụng các loại nội dung

//my.public.dns.amazonaws.com/phpinfo.php
4 và
//my.public.dns.amazonaws.com/phpinfo.php
5 trong tệp mime-multi part để bao gồm cả tập lệnh shell và chỉ thị cloud-init trong dữ liệu người dùng của bạn

Phần sau đây hiển thị định dạng mime-multi

//my.public.dns.amazonaws.com/phpinfo.php
8

Ví dụ: dữ liệu người dùng sau đây bao gồm các chỉ thị khởi tạo trên đám mây và tập lệnh bash shell. Các lệnh cloud-init tạo một tệp [_______12_______6] và ghi ___12_______7 vào tệp đó. Tập lệnh bash shell tạo một tệp [

//my.public.dns.amazonaws.com/phpinfo.php
8] và ghi
//my.public.dns.amazonaws.com/phpinfo.php
9 vào tệp đó

Làm cách nào để hiển thị đầu ra trong tập lệnh shell?

Có nhiều cách để chuyển hướng đầu ra từ các lệnh và tập lệnh shell. .
Chuyển hướng STDOUT. .
Chuyển hướng STDERR. .
Gửi STDOUT và STDERR tới cùng một tệp. .
Chuyển hướng đầu ra, nhưng nối thêm tệp. .
Chuyển hướng đến một quá trình khác hoặc đến hư không. .
Sử dụng chuyển hướng trong một tập lệnh

Làm cách nào để lấy đầu ra từ tập lệnh bash?

Bash Gán đầu ra của lệnh Shell cho và lưu vào một biến .
var=$[command-name-here] var=$[command-name-here arg1] var=$[/path/to/command] var=$[/path/to/command arg1 arg2].
var=`tên-lệnh-ở đây` var=`tên-lệnh-ở đây arg1` var=`/path/to/command` var=`/path/to/command arg1 arg2`

Làm cách nào để lưu đầu ra tập lệnh Shell trong tệp văn bản?

Sử dụng lệnh tee. Khi chúng tôi sử dụng toán tử chuyển hướng, đầu ra sẽ chỉ chuyển đến tệp, toán tử chuyển hướng không in nó trên thiết bị đầu cuối. Để xem đầu ra trên thiết bị đầu cuối và cũng lưu nó vào tệp, chúng ta có thể sử dụng lệnh tee. Nó gửi đầu ra của tệp cũng như đến thiết bị đầu cuối

Chủ Đề