demo.txt
ip가 포함된 파일이 있습니다 . 이 텍스트 파일은 매일 업데이트됩니다. 을 저장하는 테이블을 만들었습니다 id, ip, date
. 일부 조건에 따라 텍스트 파일에서 DATABASE 테이블로 IP를 INSERT
보내고 싶습니다 .UPDATE
- 텍스트 파일에서 중복된 IP가 발견되면 해당 특정 레코드에 대한 업데이트
DATE
열이 표시 됩니다.CURRENT_TIMESTAMP
- 새로운 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)용