2016-05-17 8 views
-6

Ich habe eine URL, von der ich Daten auf täglicher Basis zum Download, zum Beispiel: www.manishshukla.com/files/05-17-2016.csvBash-Skript Daten von URL zum Download

In der obigen URL, es gibt mir Daten für 17. Mai 2016. Ähnliches gilt für die Daten vom 18. Mai 2016 ist die URL: www.manishshukla.com/files/05-18-2016.csv

Ich möchte Bash-Skript, die automatisch das Datum des Tages übernimmt und die Datei herunterlädt.

Bitte helfen Sie mir, wie es geht. Ich möchte diesen Job auch auf cron hinzufügen, so dass ich den Code nicht manuell ausführen muss.

+6

Ehrlich, wer hat diese schreckliche Frage upvoted.Es gibt kein spezifisches Problem, sie bitten nur jemanden, ein Skript für sie zu schreiben. – 123

Antwort

2

Sie haben hier zwei Bits. Einer ist es, einen Cron-Job zu planen und der andere ist es, die Datei & zu speichern.

Schritte:

  1. Öffnen Sie das Terminal & Lauf crontab -e

    minute(0-59) hour(0-23) day(1-31) month(1-12) weekday(0-6) command

  2. Anstelle von Minute, Stunde, Tag, Monat & Wochentag. Stellen Sie außerdem den auszuführenden Befehl bereit.

  3. Der Befehl hier oben zu setzen ist: wget www.manishshukla.com/files/"$(date '+\%d-\%m-\%Y')".csv

  4. Speichern Sie die Datei & die Aufträge geplant sind.

In Ihrem Fall:

0 0 * * * wget --quiet -O www.manishshukla.com/files/"$(date '+\%d-\%m-\%Y')".csv 

ODER

0 0 * * * /usr/bin/curl www.manishshukla.com/files/"$(date '+\%d-\%m-\%Y')".csv 

Dies würde jeden Tag um 0hrs 0 min den Befehl ausführen.

Hinzugefügt \ zu entkommen %, wie es möglicherweise nicht in corntab ohne zu entkommen funktioniert.

Prozent-Zeichen (%) in dem Befehl, es sei denn mit Aufkantung Kodiert(), werden in Neue-Zeile-Zeichen geändert werden, und alle Daten nach dem ersten % werden als Standard-Eingabe auf den Befehl gesendet werden.

+0

Ich habe verstanden, es auf Cron zu planen, ich brauche das komplette Bash-Skript. Damit ich es auch in meinem Terminal auch für vorhergehende Termine ausführen kann. – Manish

+0

Es beginnt ab heute und geht weiter. Wenn Sie es für die vorherigen Daten wollen, dann schreiben Sie einfach eine for-Schleife, um das passende Datum einzugeben und die Dateien mit 'wget' oder' curl' zu erhalten. –

+0

Beachten Sie, dass dies wahrscheinlich nicht funktionieren wird: Sie müssen das '%' im Cron-Ausdruck vermeiden : [Warum Prozentzeichen (%) funktionieren nicht in Crontab?] (Http://stackoverflow.com/q/16238460/1983854). – fedorqui

2

Sie können diese verwenden:

wget www.manishshukla.com/files/"$(date '+%d-%m-%Y')".csv 

Wenn Sie es irgendwo spezifisch speichern möchten, dann

wget www.manishshukla.com/files/"$(date '+%d-%m-%Y')".csv -P /path/to/dir 

Sie können in einer täglichen Cron diesen Befehl setzen Sie die Dateien in einer täglichen Basis zum Download . Für Cron verwenden Sie den vollständigen Pfad wget, d. H. /usr/bin/wget oder /usr/local/bin/wget oder was auch immer es ist.

+0

Kannst du mir bitte den kompletten Code vom Start sowie vom Speichern der heruntergeladenen Datei zur Verfügung stellen. – Manish