2017-02-09 25 views

答えて

1

--logグループ名はAWS CLIでオプションではありません、あなたは

AWSログの削除ログ・グループ(テスト環境で)--log-グループ名値のための*を使用して試すことができます - 私-ログを-logグループ名

参考URL: http://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-group.html

+0

CLIを使用してロググループ内のすべてのログストリームを削除したいとします。ロググループではありません – akhila

2

これは、単一のAWS CLIコマンドを使用して実行することはできません。このため、ロググループのすべてのログストリームを最初に取得した後、ループでそれらを削除したスクリプトを使用してこれを実現しました。

3

ここでは、Pythonを使用してロググループ内のすべてのログを削除するスクリプトです。 logGroupNameに合わせてlogGroupNameを変更してください。

import boto3 

client = boto3.client('logs') 

response = client.describe_log_streams(
    logGroupName='/aws/batch/job' 
) 


def delete_stream(stream): 
    delete_response = client.delete_log_stream(
     logGroupName='/aws/batch/job', 
     logStreamName=stream['logStreamName'] 
    ) 

    print(delete_response) 


results = map(lambda x: delete_stream(x), response['logStreams']) 
3

あなたはdescribe-log-streamsの結果をターゲットに--queryを使用してこれを達成することができます。これにより、結果をループスルーして削除することができます。

aws logs describe-log-streams --log-group-name $LOG_GROUP_NAME --query 'logStreams[*].logStreamName' --output table | awk '{print $2}' | grep -v ^$ | while read x; do aws logs delete-log-stream --log-group-name $LOG_GROUP_NAME --log-stream-name $x; done

すべてまたは特定のグループまたはストリームをターゲットに--queryを使用することができます。特定の月から

削除ストリーム

aws logs describe-log-streams --log-group-name $LOG_GROUP --query 'logStreams[?starts_with(logStreamName,`2017/07`)].logStreamName' --output table | awk '{print $2}' | grep -v ^$ | while read x; do aws logs delete-log-stream --log-group-name $LOG_GROUP --log-stream-name $x; done

すべてのログ・グループの削除 - 警告は、それがすべてを削除します!

aws logs describe-log-groups --query 'logGroups[*].logGroupName' --output table | awk '{print $2}' | grep -v ^$ | while read x; do aws logs delete-log-group --log-group-name $x; done

とNAME_OF_LOG_GROUPを置き換え、次のコマンドを実行し、特定のログ・グループに関連付けられているすべてのログ・ストリームを削除するには、特定のログ・グループ

aws logs describe-log-groups --query 'logGroups[?starts_with(logGroupName,`$LOG_GROUP_NAME`)].logGroupName' --output table | awk '{print $2}' | grep -v ^$ | while read x; do aws logs delete-log-group --log-group-name $x; done

Credit

+0

これは動作しますが、すべてのログ_groups_を削除します。 OPはグループ内の_streams_を削除する方法を尋ねています。 – brianz

+0

@brianz良い点、私は正しく質問に答える答えを更新しました – Stephen

2

クリアあなたのグループ:

aws logs describe-log-streams --log-group-name NAME_OF_LOG_GROUP --output text | awk '{print $7}' | while read x; 
do aws logs delete-log-stream --log-group-name NAME_OF_LOG_GROUP --log-stream-name $x 
done 
関連する問題