텍스트 파일에서 입력을 받은 다음 쉘 스크립트를 사용하여 데이터베이스 테이블을 삽입하고 업데이트합니다.

텍스트 파일에서 입력을 받은 다음 쉘 스크립트를 사용하여 데이터베이스 테이블을 삽입하고 업데이트합니다.

demo.txtip가 포함된 파일이 있습니다 . 이 텍스트 파일은 매일 업데이트됩니다. 을 저장하는 테이블을 만들었습니다 id, ip, date. 일부 조건에 따라 텍스트 파일에서 DATABASE 테이블로 IP를 INSERT보내고 싶습니다 .UPDATE

  1. 텍스트 파일에서 중복된 IP가 발견되면 해당 특정 레코드에 대한 업데이트 DATE열이 표시 됩니다.CURRENT_TIMESTAMP
  2. 새로운 IP가 발견되면 TABLE에 레코드를 삽입합니다.

데모.txt 파일은 다음과 같습니다:

1.1.1.1
2.2.2.2
3.3.3.3
1.1.1.1

나는 이것을 시도했습니다 :

 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 스크립트 :

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

위 스크립트는 IP를 테이블에 삽입하지만 테이블을 업데이트하지는 않습니다. 새로운 기록이 발견된 경우에만 업데이트됩니다.

mysql 버전 15.1 Distrib 10.3.22-MariaDB, readline 5.1을 사용하는 Linux(x86_64)용

관련 정보