리다이렉션
- 출력의 방향을 바꿔주는 방법(기술)
- 리눅스의 표준 출력장치(stdOut)는 모니터
- 리다이렉션 기호 : ① << ② < ③ > ④ >>
리다이렉션 실습
echo 1
1을 모니터에 출력
[touch 파일명]
touch test.txt
빈 파일 생성 명령어 (0btye)
크기가 0인것을 확인
cat test.txt
파일 안의 내용 봄
test.txt 파일이 현재 비어있으니 아무 내용이 나오지 않음
echo 1 > test.txt
echo 1 > test.txt
1을 모니터에 출력하지 않고 test.txt로 방향을 바꿔서 보냄
확인할거면 cat test.txt => 1
echo 1 > test.txt
1을 모니터에 출력하지 않고 test.txt로 방향을 바꿔서 보냄
확인할거면 cat test.txt => 1
echo 2 > test.txt
echo 2 > test.txt
cat test.txt => 2가 나옴
문제점. 기존의 1이 사라지고 2가 출력됨
echo 1 >> test.txt
그렇다면,
echo 1 >> test.txt
cat test.txt => 2
1 이렇게 출력됨
> 와 >> 공통점과 차이점
> | >> | |
공통점 | 표준 출력인 모니터로 출력하지 않고 파일로 출력하는(입력하는) 리다이렉트 기호 | |
차이점 | 기존의 파일 내용을 없애고 파일에 입력 | 기존의 파일 내용을 유지하고 마지막 라인에 추가 |
- 파일 복사 : cp test.txt test.txt_old (cp 기존파일명 복사할파일명)
echo 1 모니터로 가지말고 기존의 파일 내용을 없애고 파일에 입력
echo 2 | 모니터로 가지말고 기존의 파일 내용을 유지하고 마지막 라인에 추가 |
mysqldump 명령어는 모니터에 데이터베이스 관련 내용을 출력하는 명령어이므로 리다이렉트 기호를 써서 파일에 저장 (파일명은 .sql 이어야함)
mysqldump -uroot -p --all-databases > mariadb_all_backup.sql
enter password : 1
이번에는 화면에 모든 데이터베이스 내용이 출력되지 않음
리다이렉션에 의해 파일에 그 내용이 저장
만약, 특정 데이터베이스(스키마)만 백업을 하려고 하면
mysqldump -uroot -p shopping_db > shopping_db_backup.sql
데이터베이스 복구
만약, 특정 디비의 특정 테이블 하나만 백업하려면
mysqldump -uroot -p db명 테이블명
- 데이터베이스 복구 시 리다이렉션 < 사용
- customer_table_backup.sql 파일을 활용하여 customer 테이블의 복구를 실습customer_table_backup.sql
mysql -uroot -p
enter password : 1
use shopping_db;
select * from customer;
delete from customer where id="kym";
select * from customer; -> empty set
mysql mysqldump -uroot -p shopping_db customer < customer_table_backup.sql
다시 확인해보면 백업파일이 복구된것을 확인 가능
'Network > Linux' 카테고리의 다른 글
[Linux] 두개의 서버 이중화하기 (0) | 2023.09.21 |
---|---|
[Linux] 마리아DB 데이터베이스 서버의 이중화 (0) | 2023.09.14 |
[Linux] 외부에서 mariadb 접속(리눅스 → mariadb ) (0) | 2023.09.14 |
[Linux] 가상머신 복제 후 테이블 생성(mariadb) (0) | 2023.09.14 |
[Linux] 리눅스 기반 워드프레스(WordPress) 생성 (7) | 2023.09.14 |