انتقل إلى المحتوى الرئيسي

ورقة الغش AWS CLI كاملة

تخدم هذه الصفحة كمرجع سريع لأكثر أوامر AWS CLI استخدامًا. احتفظ بها في متناول اليد!

نصيحة احترافية

إذا كان لديك حسابات AWS متعددة، استخدم الأسماء المستعارة bash:

alias aws-prod="aws --profile work-prod"
alias aws-dev="aws --profile work-dev"
alias aws-self="aws --profile personal"

لتنسيق المخرجات في جدول قابل للقراءة:

aws ec2 describe-instances | jq ... | column -t

EC2 - السحابة المرنة للحوسبة​

قائمة المثيلات​

# معرف المثيل، النوع والاسم
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key=="Name").Value)'

# المثيلات مع IP العامة والاسم
aws ec2 describe-instances --query 'Reservations[*].Instances[?not_null(PublicIpAddress)]' | jq -r '.[][]|.PublicIpAddress+" "+(.Tags[]|select(.Key=="Name").Value)'

VPC والشبكات الفرعية​

# قائمة VPCs مع CIDR
aws ec2 describe-vpcs | jq -r '.Vpcs[]|.VpcId+" "+(.Tags[]|select(.Key=="Name").Value)+" "+.CidrBlock'

# قائمة الشبكات الفرعية لـ VPC
aws ec2 describe-subnets --filter Name=vpc-id,Values=vpc-0d1c1cf4e980ac593 | jq -r '.Subnets[]|.SubnetId+" "+.CidrBlock+" "+(.Tags[]|select(.Key=="Name").Value)'

مجموعات الأمان​

# قائمة جميع مجموعات الأمان
aws ec2 describe-security-groups | jq -r '.SecurityGroups[]|.GroupId+" "+.GroupName'

# مجموعات الأمان لمثيل
aws ec2 describe-instances --instance-ids i-0dae5d4daa47fe4a2 | jq -r '.Reservations[].Instances[].SecurityGroups[]|.GroupId+" "+.GroupName'

# تعديل مجموعات الأمان لمثيل
aws ec2 modify-instance-attribute --instance-id i-0dae5d4daa47fe4a2 --groups sg-02a63c67684d8deed sg-0dae5d4daa47fe4a2

# عرض القواعد (FromAddress و ToPort)
aws ec2 describe-security-groups --group-ids sg-02a63c67684d8deed | jq -r '.SecurityGroups[].IpPermissions[]|. as $parent | .IpRanges[]|.CidrIp+" "+($parent.ToPort|tostring)'

# إضافة قاعدة
aws ec2 authorize-security-group-ingress --group-id sg-02a63c67684d8deed --protocol tcp --port 443 --cidr 35.0.0.1/32

# حذف قاعدة
aws ec2 revoke-security-group-ingress --group-id sg-02a63c67684d8deed --protocol tcp --port 443 --cidr 35.0.0.1/32

# حذف مجموعة أمان
aws ec2 delete-security-group --group-id sg-02a63c67684d8deed

S3 - خدمة التخزين البسيطة​

العمليات الأساسية​

# قائمة الدلاء
aws s3 ls

# قائمة الملفات في دلو
aws s3 ls s3://mon-bucket/chemin/

# إنشاء دلو
aws s3 mb s3://mon-nouveau-bucket

# حذف دلو (force = يحذف المحتوى)
aws s3 rb s3://mon-bucket --force

نقل الملفات​

# تحميل كائن S3 إلى محلي
aws s3 cp s3://mon-bucket/fichier.tar .

# رفع ملف محلي إلى S3
aws s3 cp backup.tar s3://mon-bucket/

# حذف كائن S3
aws s3 rm s3://mon-bucket/fichier-secret.gz

# مزامنة دلو إلى محلي
aws s3 sync s3://mon-bucket/ /media/backup/

# مزامنة مجلد محلي إلى دلو
aws s3 sync /home/user/downloads s3://mon-bucket/

المشاركة الآمنة​

# توليد URL موقعة مسبقًا (تنتهي في 3600 ثانية)
aws s3 presign s3://mon-bucket/rapport.pdf --expires-in 3600

API Gateway​

# قائمة API Gateway (المعرف والاسم)
aws apigateway get-rest-apis | jq -r '.items[] | .id+" "+.name'

# قائمة مفاتيح API
aws apigateway get-api-keys | jq -r '.items[] | .id+" "+.name'

# قائمة أسماء النطاقات
aws apigateway get-domain-names | jq -r '.items[] | .domainName+" "+.regionalDomainName'

# قائمة الموارد لـ API
aws apigateway get-resources --rest-api-id ee86b4cde | jq -r '.items[] | .id+" "+.path'

# العثور على Lambda المرتبطة بموارد
aws apigateway get-integration --rest-api-id ee86b4cde --resource-id 69ef7d4c8 --http-method GET | jq -r '.uri'

ELB - موازن التحميل المرن​

# قائمة أسماء المضيفين ELB
aws elbv2 describe-load-balancers --query 'LoadBalancers[*].DNSName' | jq -r 'to_entries[] | .value'

# قائمة ARNs ELB
aws elbv2 describe-load-balancers | jq -r '.LoadBalancers[] | .LoadBalancerArn'

# قائمة ARNs مجموعات الهدف
aws elbv2 describe-target-groups | jq -r '.TargetGroups[] | .TargetGroupArn'

# العثور على المثيلات لمجموعة هدف
aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:...:targetgroup/frontend/b6da07d35 | jq -r '.TargetHealthDescriptions[].Target.Id'

RDS - خدمة قاعدة البيانات العلائقية​

# قائمة مجموعات DB
aws rds describe-db-clusters | jq -r '.DBClusters[] | .DBClusterIdentifier+" "+.Endpoint'

# قائمة مثيلات DB
aws rds describe-db-instances | jq -r '.DBInstances[] | .DBInstanceIdentifier+" "+.DBInstanceClass+" "+.Endpoint.Address'

# إنشاء لقطة لمثيل
aws rds create-db-snapshot --db-snapshot-identifier backend-snapshot-001 --db-instance-identifier backend-dev

# إنشاء لقطة لمجموعة
aws rds create-db-cluster-snapshot --db-cluster-snapshot-identifier prod-snapshot-001 --db-cluster-identifier backend-prod

ElastiCache​

# قائمة المجموعات (النوع والاسم)
aws elasticache describe-cache-clusters | jq -r '.CacheClusters[] | .CacheNodeType+" "+.CacheClusterId'

# قائمة مجموعات التكرار
aws elasticache describe-replication-groups | jq -r '.ReplicationGroups[] | .ReplicationGroupId+" "+.NodeGroups[].PrimaryEndpoint.Address'

# قائمة اللقطات
aws elasticache describe-snapshots | jq -r '.Snapshots[] | .SnapshotName'

# إنشاء لقطة
aws elasticache create-snapshot --snapshot-name backend-snap-001 --replication-group-id backend-login --cache-cluster-id backend-001

# حذف لقطة
aws elasticache delete-snapshot --snapshot-name backend-snap-001

# زيادة/تقليل النسخ
aws elasticache increase-replica-count --replication-group-id backend-login --apply-immediately
aws elasticache decrease-replica-count --replication-group-id backend-login --apply-immediately

Lambda​

# قائمة الوظائف (الاسم، وقت التشغيل، الذاكرة)
aws lambda list-functions | jq -r '.Functions[] | .FunctionName+" "+.Runtime+" "+(.MemorySize|tostring)'

# قائمة الطبقات
aws lambda list-layers | jq -r '.Layers[] | .LayerName'

# قائمة مصادر الأحداث
aws lambda list-event-source-mappings | jq -r '.EventSourceMappings[] | .FunctionArn+" "+.EventSourceArn'

# تحميل كود وظيفة
aws lambda get-function --function-name MaFonction | jq -r .Code.Location
# ثم wget أو curl على URL المعاد

CloudWatch​

# قائمة الإنذارات وحالتها
aws cloudwatch describe-alarms | jq -r '.MetricAlarms[] | .AlarmName+" "+.Namespace+" "+.StateValue'

# إنشاء إنذار CPU عالي
aws cloudwatch put-metric-alarm \
--alarm-name high-cpu-usage \
--alarm-description "إنذار عندما يتجاوز CPU 70%" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 70 \
--comparison-operator GreaterThanThreshold \
--dimensions Name=InstanceId,Value=i-12345678 \
--evaluation-periods 2 \
--alarm-actions arn:aws:sns:region:account:topic

# إنشاء إنذار StatusCheckFailed
aws cloudwatch put-metric-alarm \
--alarm-name EC2-StatusCheckFailed \
--alarm-description "EC2 StatusCheckFailed" \
--metric-name StatusCheckFailed_Instance \
--namespace AWS/EC2 \
--statistic Maximum \
--period 60 \
--threshold 1 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=InstanceId,Value=i-12345678 \
--evaluation-periods 2

Route 53​

# قائمة النطاقات (المناطق المستضافة)
aws route53 list-hosted-zones | jq -r '.HostedZones[]|.Id+" "+.Name'

# قائمة السجلات لمنطقة
aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/ZEB1PAH4U | jq -r '.ResourceRecordSets[]| .Type+" "+.Name+" "+(.ResourceRecords[].Value // .AliasTarget.DNSName)'

SNS - خدمة الإشعارات البسيطة​

# قائمة المواضيع
aws sns list-topics | jq -r '.Topics[] | .TopicArn'

# قائمة الاشتراكات
aws sns list-subscriptions | jq -r '.Subscriptions[] | .TopicArn+" "+.Protocol+" "+.Endpoint'

# نشر رسالة
aws sns publish \
--topic-arn arn:aws:sns:region:account:mon-topic \
--message "تنبيه!" \
--subject "إشعار مهم"

DynamoDB​

# قائمة الجداول
aws dynamodb list-tables | jq -r .TableNames[]

# مسح جميع العناصر (تحذير: قد يستغرق وقتًا طويلاً!)
aws dynamodb scan --table-name ma-table

# عد العناصر
aws dynamodb scan --table-name ma-table --select COUNT | jq .ScannedCount

# الحصول على عنصر بواسطة مفتاح
aws dynamodb get-item --table-name ma-table --key '{"email": {"S": "user@example.com"}}'

# الحصول على حقول محددة
aws dynamodb get-item --table-name ma-table --key '{"email": {"S": "user@example.com"}}' --attributes-to-get event_type

# حذف عنصر
aws dynamodb delete-item --table-name ma-table --key '{"email": {"S": "user@example.com"}}'

SQS - خدمة قائمة الانتظار البسيطة​

# قائمة الطوابير
aws sqs list-queues | jq -r '.QueueUrls[]'

# إنشاء طابور
aws sqs create-queue --queue-name ma-queue.fifo | jq -r .QueueUrl

# عد الرسائل
aws sqs get-queue-attributes --queue-url https://sqs.region.amazonaws.com/account/ma-queue --attribute-names ApproximateNumberOfMessages

# إرسال رسالة
aws sqs send-message --queue-url https://sqs.region.amazonaws.com/account/ma-queue --message-body "Hello World"

# استلام رسالة
aws sqs receive-message --queue-url https://sqs.region.amazonaws.com/account/ma-queue | jq -r '.Messages[].Body'

# حذف رسالة
aws sqs delete-message --queue-url https://sqs.region.amazonaws.com/account/ma-queue --receipt-handle <HANDLE>

# تطهير طابور
aws sqs purge-queue --queue-url https://sqs.region.amazonaws.com/account/ma-queue

# حذف طابور
aws sqs delete-queue --queue-url https://sqs.region.amazonaws.com/account/ma-queue

CloudFront​

# قائمة التوزيعات والأصول
aws cloudfront list-distributions | jq -r '.DistributionList.Items[] | .DomainName+" "+.Origins.Items[0].DomainName'

# إنشاء إبطال ذاكرة التخزين المؤقت
aws cloudfront create-invalidation --distribution-id D12B09E8A0A996 --paths "/blog/*" "/assets/*" | jq -r '.Invalidation.Id'

# التحقق من حالة الإبطال
aws cloudfront get-invalidation --distribution-id D12B09E8A0A996 --id IALJ5AL93ZD79 | jq -r '.Invalidation.Status'

Amplify​

# قائمة التطبيقات والمستودعات
aws amplify list-apps | jq -r '.apps[] | .name+" "+.defaultDomain+" "+.repository'

Cognito​

# قائمة مجموعات المستخدمين
aws cognito-idp list-user-pools --max-results 60 | jq -r '.UserPools[] | .Id+" "+.Name'

# قائمة المستخدمين (الهاتف والبريد الإلكتروني)
aws cognito-idp list-users --user-pool-id ap-southeast-1_b6da07d35 | jq -r '.Users[].Attributes | from_entries | .sub+" "+.phone_number+" "+.email'

IAM - المستخدمون​

# قائمة المستخدمين
aws iam list-users | jq -r '.Users[]|.UserId+" "+.UserName'

# الحصول على مستخدم
aws iam get-user --user-name kaiser

# إنشاء مستخدم
aws iam create-user --user-name nouvel-utilisateur

# حذف مستخدم
aws iam delete-user --user-name ancien-utilisateur

# قائمة مفاتيح الوصول
aws iam list-access-keys --user-name mon-user | jq -r .AccessKeyMetadata[].AccessKeyId

# حذف مفتاح وصول
aws iam delete-access-key --user-name mon-user --access-key-id AKIAXXXXXXXX

# تفعيل/تعطيل مفتاح
aws iam update-access-key --status Inactive --user-name mon-user --access-key-id AKIAXXXXXXXX
aws iam update-access-key --status Active --user-name mon-user --access-key-id AKIAXXXXXXXX

# توليد مفتاح جديد
aws iam create-access-key --user-name mon-user | jq -r '.AccessKey | .AccessKeyId+" "+.SecretAccessKey'

IAM - المجموعات​

# قائمة المجموعات
aws iam list-groups | jq -r .Groups[].GroupName

# إنشاء/حذف مجموعة
aws iam create-group --group-name nouveau-groupe
aws iam delete-group --group-name ancien-groupe

# قائمة السياسات
aws iam list-policies | jq -r '.Policies[]|.PolicyName+" "+.Arn'
aws iam list-policies --scope AWS | jq -r '.Policies[]|.PolicyName+" "+.Arn' # AWS managed
aws iam list-policies --scope Local | jq -r '.Policies[]|.PolicyName+" "+.Arn' # Custom

# الكيانات لسياسة
aws iam list-entities-for-policy --policy-arn arn:aws:iam::account:policy/MaPolicy

# سياسات مجموعة
aws iam list-attached-group-policies --group-name mon-groupe

# إرفاق سياسة لمجموعة
aws iam attach-group-policy --group-name mon-groupe --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess

# فصل سياسة
aws iam detach-group-policy --group-name mon-groupe --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess

# إضافة مستخدم إلى مجموعة
aws iam add-user-to-group --group-name mon-groupe --user-name mon-user

# إزالة مستخدم من مجموعة
aws iam remove-user-from-group --group-name mon-groupe --user-name mon-user

# قائمة مستخدمي مجموعة
aws iam get-group --group-name mon-groupe

# قائمة مجموعات مستخدم
aws iam list-groups-for-user --user-name mon-user

ملخص الخدمات​

الخدمةالأمر الأساسيالوصف
EC2aws ec2 describe-instancesمثيلات الحوسبة
S3aws s3 lsتخزين الكائنات
RDSaws rds describe-db-instancesقواعد البيانات
Lambdaaws lambda list-functionsبدون خادم
IAMaws iam list-usersالهويات والوصول
VPCaws ec2 describe-vpcsالشبكة الافتراضية
CloudWatchaws cloudwatch describe-alarmsالمراقبة
SNSaws sns list-topicsالإشعارات
SQSaws sqs list-queuesقوائم الرسائل
DynamoDBaws dynamodb list-tablesNoSQL
Route 53aws route53 list-hosted-zonesDNS
CloudFrontaws cloudfront list-distributionsCDN
ELBaws elbv2 describe-load-balancersموازنة التحميل

العودة: تثبيت AWS CLI