Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

4건의 글

리눅스 서버에서 폴더별 용량 확인 및 삭제 방법 (du, rm)

리눅스 서버에서 du 명령어로 폴더별 디스크 사용량을 확인하는 방법을 정리했다. du -sh로 각 폴더 요약 확인, 특정 경로의 하위 폴더별 용량, 재귀적 용량 표시, sort -hr로 큰 폴더 순 정렬을 설명하고, rm -rf로 폴더를 삭제할 때 되돌릴 수 없으므로 백업 후 신중하게 사용해야 한다는 주의사항을 강조한다.

리눅스 서버에서 폴더별 용량을 확인하려면 주로 du 명령어를 사용합니다. 예를 들어:

  1. 현재 디렉토리 내 각 폴더 용량 확인:
    du -sh */ 
  • du : 디스크 사용량(disk usage)을 표시하는 명령어
  • -s : 각각의 디렉토리에 대해 합계만 출력 (요약)
  • -h : 사람이 읽기 쉬운 형식(human-readable), KB/MB/GB 단위로 표시
  • */ : 현재 디렉토리 내 폴더들만 대상으로 함
  1. 특정 경로 내 폴더별 용량 확인:
    du -sh /path/to/directory/*/ 
  2. 하위 폴더까지 재귀적으로 모두 용량 표시:
    du -h /path/to/directory 
  3. 용량이 큰 폴더부터 정렬해서 보고 싶다면:
    du -sh /path/to/directory/* | sort -hr 
  • sort -hr : 숫자를 크기 순서로 역정렬(human-readable 숫자도 인식)

리눅스 서버에서 /www/css/images 폴더를 삭제하려면 rm 명령어를 사용합니다. 폴더(디렉토리)를 삭제하려면 -r 옵션(재귀적 삭제)과 -f 옵션(강제 삭제)을 함께 쓰는 것이 일반적입니다.

다음 명령어를 터미널에 입력하세요:

rm -rf /www/css/images 

설명:

  • rm : 파일/폴더 삭제 명령어
  • -r : 디렉토리 및 그 안의 모든 파일과 하위 디렉토리를 재귀적으로 삭제
  • -f : 강제로 삭제, 삭제 확인 메시지 없이 처리

주의:

  • 해당 폴더와 그 안의 모든 파일이 완전히 삭제되므로 매우 신중히 사용하세요.
  • 삭제 후에는 복구가 어렵습니다.
  • 필요하다면 삭제 전에 백업을 권장합니다.

삭제 권한 문제가 있으면 sudo를 붙여 관리자로 실행하세요:

sudo rm -rf /www/css/images 

MySQL 데이터베이스 전체 백업과 복구 방법 (mysqldump)

mysqldump를 이용한 MySQL 백업과 복구 방법을 정리한 글이다. 특정 DB·특정 테이블 단위 백업/복구, 여러 DB를 한 번에 백업하는 --databases 옵션, 전체 DB를 백업하는 --all-databases, 기존 테이블을 삭제하고 복구하는 --add-drop-table 옵션의 차이를 명령어 예제로 설명한다.

  • 특정 데이타베이스 하나만을 백업

백업형식 : myslqdump -u DB계정명 -p 백업대상데이터베이스명 > 저장할파일명

복구형식 : mysql -u DB계정명 -p 복구할테이터베이스명 < 저장할파일명

./mysqldump -u root -p mysql > mysql.sql //mysql 디비 백업 예

./mysql -u root -p mysql < ./mysql.sql //mysql 디비 복구 예

// 위 백업결과물인 sql 파일은 디비를 생성하지는 않는다.. 다시말해 복구하려는 디비에 mysql이란 디비가 없다면 복구가 되지않는다.... 이점 유의

// 복구하려는 mysql 디비에 테이블이 이미 존재한다면 복구 실패... sql 파일에서 해당 디비의 테이블을 생성하므로.. 따라서 특정 데이타베이스 하나만을 복구 할 시에는 데이타베이스의 이름만 생성한 다음에 위 방법의 복구하여야 함

  • 특정 데이타베이스의 특정 테이블 하나만을 복구 백업

백업형식 : myslqdump -u DB계정명 -p 데이터베이스명 테이블명 > 저장할파일명

복구형식 : mysql -u DB계정명 -p 데이터베이스명 < 저장할파일명

./mysqldump -u root -p mysql user > user.sql

./mysql -u root -p mysql < user.sql

  • 여러개의 데이터베이스 한번에 백업과 복구

백업형식 : mysqldump -u root -p --databases [옵션] DB1 [DB2 DB3] > 파일명

복구방법 : mysql -u root -p < 파일명

./mysqldump -u root -p --databases mysql test > dbs.sql //mysql, test 디비를 백업

./mysql -u -root -p < dbs.sql //백업된 두 디비를 복구

//--databases 옵션 시 일반 백업과 달리 "CREATE DATABASE ..."문과 "USE DB .." 문이 추가됨

//달리 애기하면 DB를 생성할 필요가 없이 바루 디비가 생성되고 생성된 디비로 전환되고 테이블을 생성하고 인서트로 데이타를 붓는다.. 데이타베이스를 지정하면 안됨

  • Mysql 의 전체 데이타베이스 백업

백업형식 : ./mysqldump -u root -p --all-databases > 파일명.sql

복구형식 : mysql -u root -p < 파일명.sql

//원본 데이타베이스명과 동일한 디비가 생성됨

  • 기존 테이블 삭제후 백업된 파일로 복구를 위한 백업

(mysqldump문으로 데이타베이스 백업 시 각각의 create table문 앞에 drop table문을 삽입한 형태가 된다)

백업형식 : ./mysqldump -u root -p --add-drop-table test > test.sql

//test 데이타베이스를 기존 태이블 삭제문을 추가하여 백업한다

복구형식 : ./mysql -u root -p test < test.sql

//기존 테이블을 삭제하고 복구한다는것에 유의

1、查看库:show databases;

2、建立数据库: create database 库名;

3、选择数据库:use 库名;

4、查看库下的所有表:show tables;

5、查看表结构 :desc表名;(describe缩写)

6、建立数据表:

use 库名;

create table 表名 (字段名 varchar(20)字符串, 字段名 char(1));

7、修改表名:rename table oldname to newname;

8、往表中插入记录:insert into 表名values (‘hyq’,‘m’);

9、显示表中的记录:select * from 表名;

10、更新表中数据:

update 表名 set 字段名1=‘a’, 字段名2=‘b’ where 字段名3=‘c’;

多个字段更新,用逗号隔开

自增 update myTable set vipczz=vipczz+1 where vip=1;

11、将表中记录清空:delete from表名 where id=1;

12、删除数据表:drop table 表名;

13、删除数据库:drop database 库名;

Linux 디스크 용량 확인하기 - df와 du 명령어 정리

Linux에서 디스크 용량을 확인하는 df와 du 명령어 사용법을 정리한 글이다. df -h로 파티션별 남은 용량, df .로 현재 디렉터리가 포함된 파티션 용량을 확인하고, du -sh로 디렉터리별 사용량을 사람이 읽기 쉬운 단위로 출력하는 방법을 설명한다. 실제 명령 실행 예시도 함께 담고 있다.

Linux 디스크 용량 확인 하기

df : 디스크 남은 용량 확인 (기본 명령어)
df -k : 킬로바이트 단위로 남은 용량 확인
df -m : 메가 바이트 단위로 남은 용량 확인
df -h : 깔끔하게 보여줌
df . : 현재 디렉토리가 포함된 파티션의 남은 용량 확인
du : 현재 디렉토리에서 서브 디렉토리까지 용량 확인
du -a : 현재 디렉토리의 사용량 파일단위로 출력
du -s : 총 사용량
du -h : 깔끔하게 보여줌
**du -sh *** : 한단계 서브 디렉토리 기준으로 보여줌

$ df .
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/xvda1      10473452 8685140   1788312  83% /
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        475M     0  475M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M   19M  473M   4% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1       10G  8.3G  1.8G  83% /
tmpfs            99M     0   99M   0% /run/user/0

MySQL에서 중복 데이터 모두 찾기 (GROUP BY + HAVING)

MySQL에서 특정 필드의 중복된 값을 모두 찾아내는 방법을 정리했다. GROUP BY와 count()로 필드값별 건수를 집계하고, HAVING 절에서 count 결과가 n 이상인 항목만 거르는 쿼리 예제를 보여준다. 중복 횟수 2개 이상인 데이터를 확인하는 실제 실행 결과 표도 함께 포함되어 있다.

SELECT 필드명, count(*) FROM 테이블명 GROUP BY 필드명
mysql> SELECT t1, count(*) FROM test GROUP BY t1

중복된 갯수가 n개 이상인 것 찾기
SELECT 필드명, count(*) as 변수명 FROM 테이블명 GROUP BY 필드명 HAVING 변수명>n

mysql> SELECT t1, count(*) as num FROM test GROUP BY t1 HAVING num>1;
t1 num
tulip pink 2
라일라 2

2 rows in set (0.01 sec)



Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.