NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
EL

Εντολές Linux

curl: Το πρόγραμμα-πελάτης Web γραμμής εντολών που εκτελεί το Web

Το curl είναι ο HTTP-πελάτης τσέπης κάθε εργαλειοθήκης λειτουργιών: διαγνωστικό, φιλικό προς τη διοχέτευση και ειλικρινής για το τι επέστρεψε. Η επιφάνεια της σημαίας του φαίνεται τεράστια και ως επί το πλείστον δεν παίζει: περίπου δώδεκα σημαίες καλύπτουν την καθημερινή λειτουργική χρήση και η γνώση τους είναι η διαφορά μεταξύ των σεναριακών ελέγχων υγείας και των τυχερών. Ο κανόνας που εξοικονομεί τη μεγαλύτερη σελιδοποίηση είναι ασήμαντος: ορίστε --max-time κάθε φορά, γιατί η υπομονή του curl είναι άπειρη και η δική σας όχι.

Βασικά σημεία

  1. Κοιτάξτε πριν κάνετε λήψη: curl -sSI https://host επιστρέφει μέθοδο, κεφαλίδες και κατάσταση χωρίς σώμα. προσθήκη -v όταν οι χειραψίες TLS, οι κεφαλίδες διακομιστή μεσολάβησης ή κεντρικών υπολογιστών συμπεριφέρονται παράξενα.
  2. Η πειθαρχία χρονικού ορίου είναι αδιαπραγμάτευτη: --connect-timeout 5 σκοτώνει νεκρές συνδέσεις, --max-time 15 σκοτώνει αργές συνδέσεις. ένας υγειονομικός έλεγχος χωρίς και τα δύο μπορεί να διαρκέσει περισσότερο από τη διακοπή που έπρεπε να εντοπίσει.
  3. Οι κωδικοί εξόδου είναι το συμβόλαιο σε σενάρια: 7 είναι η σύνδεση απορρίφθηκε, 28 είναι χρονικό όριο λήξης, 22 είναι ένα σφάλμα HTTP που εμφανίστηκε από --fail; διαβάστε τον κώδικα, όχι μόνο την έξοδο, διαφορετικά η παρακολούθηση δεν μαθαίνει τίποτα.
  4. Σύζευξη ορατότητας με επιβολή: -w '%{http_code} %{time_total}\n' αναφέρει τι συνέβη, ενώ το --fail-with-body εμφανίζει το σώμα σφάλματος. Χωρίς ένα από αυτά, η αποτυχία μοιάζει ακριβώς με επιτυχία.
  5. Δοκιμάστε τι χτυπούν πραγματικά οι χρήστες: --resolve example.com:443:10.1.2.3 ελέγχει ένα επώνυμο backend χωρίς παιχνίδια DNS και -H 'Host: vhost.example.com' καλύπτει την πλευρά vhost του ίδιου αιτήματος.
  6. Οι μεταφορές λαμβάνουν σκόπιμα σημαίες: -o ονομάζει το αποτέλεσμα, -L ακολουθεί ανακατευθύνσεις που έχετε ελέγξει, --επαναπροσπαθήστε 3 --επαναπροσπαθήστε-καθυστέρηση 2 απαλύνει τα ξεφλουδισμένα upstream και -F χειρίζεται τις μεταφορτώσεις πολλών μερών wget που ποτέ δεν ενδιαφέρθηκαν.
  7. Οι κεφαλίδες και οι υποδοχές φέρουν τον κόσμο χωρίς πρόγραμμα περιήγησης: -H 'Εξουσιοδότηση: Φορέας ...' για API και --unix-socket /run/app/app.sock για την ανίχνευση τοπικών υπηρεσιών που δεν αγγίζουν ποτέ καθόλου το TCP.
  8. Γνωρίστε τις δύο κλασικές παγίδες: μεταβλητές περιβάλλοντος διακομιστή μεσολάβησης που παραβιάζουν ένα αίτημα που το -v εκθέτει σε δευτερόλεπτα και ανακατευθύνσεις που μετατρέπουν σιωπηλά ένα POST σε GET, εκτός αν το εννοούσατε.

Σημείωση από το πεδίο

Ο έλεγχος υγείας που κρεμάστηκε για δεκαπέντε λεπτά ήταν μπούκλα χωρίς --max-time μέσα σε ένα βρόχο cron, και διήρκησε περισσότερο από τη διακοπή που έπρεπε να ανιχνεύσει. Τα χρονικά όρια πλέον εμφανίζονται πριν από τη διεύθυνση URL, κατ' αρχήν.

Συχνές ερωτήσεις

Γιατί το curl βγήκε 0 όταν ο ιστότοπος επέστρεψε 500;

Η επιτυχία του curl σημαίνει ότι η μεταφορά λειτούργησε. Τα σφάλματα σε επίπεδο HTTP είναι αόρατα χωρίς --fail (έξοδος 22) ή ανάγνωση του %{http_code} από -w. Τα σενάρια παρακολούθησης επιμένουν σε ένα από τα δύο.

curl ή wget για σενάρια;

curl για API, κεφαλίδες, σώματα POST και ακριβή έλεγχο. wget για κατοπτρισμό και αναδρομή. Για ένα GET μίας λήψης είτε λειτουργεί, και ένας αγωγός που αναμειγνύει και τα δύο είναι συνήθως ένα σημάδι ότι κανείς δεν αποφάσισε σε ποιον ανήκει η δουλειά.

Δικαιολογείται ποτέ η παράβλεψη της επαλήθευσης TLS;

Για ένα διαδραστικό διαγνωστικό έναντι ενός αυτουπογεγραμμένου εργαστηριακού πιστοποιητικού, μερικές φορές. σε οτιδήποτε σεναριακό ή cron-driven, όχι. Το -k απενεργοποιεί τη μοναδική επιταγή που εμποδίζει έναν άνδρα στη μέση να κατέχει τη μεταφορά σας.

Πώς μπορώ να μάθω πού σταματά ένα αργό αίτημα;

Μεταβλητές χρονισμού: -w 'dns:%{time_namelookup} connect:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} σύνολο:%{time_total}\n' που εκτελούνται μερικές φορές διαχωρίζει το ξεφλούδισμα DNS από τον πόνο χειραψίας από τους στάβλους του backend.

Πώς βοηθάει η Kinetikatech στα εντολές linux

Για να είμαστε ειλικρινείς, οι περισσότερες ομάδες έρχονται σε εμάς αφού δοκιμάσουν μόνες τους: Οι εντολές και οι συνήθειες δέσμης ενεργειών που αποφασίζουν εάν ένας διαχειριστής χειρίζεται έναν διακομιστή ή τον καταπολεμά: αναζήτηση, μετατροπή, μεταφορά και επίβλεψη κειμένου και διεργασιών με τα εργαλεία που υπάρχουν σε κάθε βασική εγκατάσταση. Η υπηρεσία μας Ασφάλεια διακομιστών Linux and Διαχείριση διακομιστών υπάρχει για να μην ανακαλύψετε εντολές linux με τον σκληρό τρόπο· την εγκατάσταση, την παρακολούθηση και τις εκπλήξεις τις αναλαμβάνουμε εμείς.

Μιλήστε με έναν μηχανικό

Πρόβλημα διακομιστή; Εισβολή στον ιστότοπο; Αργός ιστότοπος;

Απάντηση σε κρίσιμα ζητήματα εντός 30 λεπτών — 24 ώρες την ημέρα, 7 ημέρες την εβδομάδα.

Ζήτηστε επείγουσα υποστήριξη support@kinetikatech.com