2 Pluspunkte 0 Minuspunkte

Ich habe ein Bash Script um eine Abfrage in der Elasticsearch API zu machen.

curl --insecure -X GET "https://localhost:9200/audit/_search" \
 -H "Content-Type: application/json" \
 -u admin:SecretPassword \
 -d '{
  "size": 10,
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "data.win.eventdata.authenticationPackageName": "NTLM"
          }
        },
        {
          "match": {
            "data.win.system.eventID": "4624"
          }
        },
        {
          "match": {
            "data.win.eventdata.logonType": "3"
          }
        }
      ]
    }
  }
}'

Es ist nur extrem mühsam jedes mal das JSON in der Datei anzupassen ohne die Curl Syntax zu brechen deshalb wollte ich das man den Search Request (das JSON) in eine Datei schreiben kann und dann den Payload aus der Datei liest und einfügt. Wie mache ich das am besten?

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Wenn du ein "@" vor den Payload macht, interpretiert curl es als Dateiname und liest diese automatisch ein. Mit "$1" erhältst du den ersten übergebenen Parameter. Somit kannst du den Dateinamen als Parameter angeben.

curl --insecure -X GET "https://localhost:9200/audit/_search" \
 -H "Content-Type: application/json" \
 -u admin:SecretPassword \
 -d @"$1"
von (1.3k Punkte)