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

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

demo.txtip가 포함된 파일이 있습니다 . 이 텍스트 파일은 매일 업데이트됩니다. id, ip, date특정 조건에서 텍스트 파일의 IP를 데이터베이스 테이블에 INSERT저장하고 싶습니다 .UPDATE

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

Demo.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

쿵쿵 스크립트:

#!/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 Linux용 Distrib 10.3.22-MariaDB(x86_64), readline 5.1 사용

관련 정보