Aby usunąć strumień dziennika z grupy dziennika przy użyciu polecenia CLI, wymagane są indywidualne nazwy strumieni dziennika. Czy istnieje sposób usuwania wszystkich strumieni dziennika należących do grupy dziennika przy użyciu pojedynczego polecenia?usuń wszystkie strumienie logów z grupy dzienników za pomocą aws cli
Odpowiedz
--log-group-name nie jest obowiązkowe w AWS CLI, można spróbować użyć znaku * dla wartości --log-nazwa-grupy (w środowisku testowym)
AWS kłody usuwać-log-grupę - -log-nazwa-grupy-moje dzienniki
URL referencyjny: http://docs.aws.amazon.com/cli/latest/reference/logs/delete-log-group.html
ta nie może być wykonana przy użyciu jednego polecenia AWS CLI. Dlatego osiągnęliśmy to, używając skryptu, w którym najpierw pobieraliśmy wszystkie strumienie logów z grupy logów, a następnie usuwaliśmy je w pętli.
Oto skrypt, aby usunąć wszystkie dzienniki w grupie dziennika przy użyciu Pythona. Po prostu zmień logGroupName, aby pasowała do Twojej grupy logg.
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'])
Można to osiągnąć poprzez zastosowanie --query
kierować wyniki describe-log-streams
. Pozwala to na przeglądanie i usuwanie wyników.
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
Można użyć --query
kierować wszystkich lub określonych grup lub strumieni.
Usuwanie strumienie z określonego miesiąca
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
Usuń wszystkie grupy dziennika - ostrzeżenie, usuwa wszystko!
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
Usuwanie konkretne grupy dziennika
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
Aby usunąć wszystkie strumienie dziennika związane z określonej grupy dziennika, uruchom następujące polecenie, zastępując NAME_OF_LOG_GROUP z twoja grupa:
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
Chciałbym usunąć wszystkie strumienie logów pod grupą logów za pomocą CLI. Nie jest to grupa dziennika – akhila