Nehmen Sie die Eingabe aus der Textdatei und fügen Sie dann die Datenbanktabelle mithilfe eines Shell-Skripts ein und aktualisieren Sie sie

Nehmen Sie die Eingabe aus der Textdatei und fügen Sie dann die Datenbanktabelle mithilfe eines Shell-Skripts ein und aktualisieren Sie sie

Ich habe eine demo.txtDatei, die IP enthält. Diese Textdatei wird täglich aktualisiert. Ich habe eine Tabelle erstellt, die speichert id, ip, date. Ich möchte unter bestimmten Bedingungen eine IP aus der Textdatei in die Datenbanktabelle INSERTübertragen .UPDATE

  1. Wenn in der Textdatei eine doppelte IP gefunden wird, AKTUALISIEREN Sie DATEdie Spalte mit CURRENT_TIMESTAMPdiesem bestimmten Datensatz.
  2. Wenn eine neue IP gefunden wird, fügen Sie den Datensatz in die TABELLE ein.

Die Datei demo.txt sieht folgendermaßen aus:

1.1.1.1
2.2.2.2
3.3.3.3
1.1.1.1

Ich habe Folgendes ausprobiert:

 CREATE TABLE `demo` (
  `id` int(25) NOT NULL AUTO_INCREMENT,
  `ip` varchar(25) NOT NULL,
  `date` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

BASH-SKRIPT:

#!/bin/bash
inputfile="demo.txt"
cat $inputfile | while read ip ; do
     echo "INSERT INTO demo (ip) VALUES ('$ip');"
        done | mysql -u root -proot demo;

Das obige Skript fügt die IP in die Tabelle ein, aktualisiert sie aber nicht. Die Tabelle wird nur aktualisiert, wenn ein neuer Datensatz gefunden wird.

mysql Ver 15.1 Distrib 10.3.22-MariaDB, für Linux (x86_64) mit Readline 5.1

verwandte Informationen