| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- 파일시스템
- linux
- 리눅스
- 터미널
- bash
- cups
- Solaris
- 유닉스명령어
- 정규표현식
- 쉘스크립트
- UNIX
- JavaScript
- 자바스크립트
- UnixCommand
- sysadmin
- 명령어
- js
- terminal
- PackageManagement
- tcsh
- linuxcommand
- php
- coreutils
- 시스템관리
- 사용자관리
- 유닉스
- environment
- 리눅스명령어
- Unix명령어
- shell
Archives
- Today
- Total
ioerror
sync 사용법 및 옵션 - 버퍼 캐시의 변경된 데이터를 디스크로 강제 동기화하는 명령 본문
반응형

sync - Synchronize cached writes to persistent storage
메모리(RAM)의 버퍼 캐시(Buffer Cache)에 임시 저장되어 있는 변경된 파일 시스템 데이터(Dirty Buffer)를 실제 물리적 디스크 저장소로 즉시 강제 기록(Flush)하는 유닉스 및 리눅스 기본 명령어이다. 시스템이 갑작스럽게 종료되거나 전원이 차단될 때 발생할 수 있는 데이터 손실 및 파일 시스템 손상을 방지하기 위해 사용된다. 과거 유닉스 시절부터 시스템 종료 전 필수적인 안전 조치로 활용되어 왔다.
1. sync 용도
- USB 메모리, 외장 하드 등 이동식 저장 장치를 시스템에서 마운트 해제(Unmount)하거나 물리적으로 뽑기 직전에 데이터 완전 기록을 보장하기 위해 사용된다.
- 시스템 재부팅, 셧다운 또는 커널 업데이트 작업 전 미저장된 파일 시스템 변경 사항을 디스크에 동기화할 때 사용된다.
2. sync 서식
sync [OPTION] [FILE]...
3. sync 옵션
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| FILE | 전체 파일 시스템이 아닌 지정한 특정 파일 또는 디렉터리가 속한 파일 시스템만 동기화한다. | POSIX GNU Coreutils Linux |
| -f, --file-system | 지정한 파일이 포함된 전체 파일 시스템의 동기화를 강제한다. | GNU Coreutils Linux |
| -d, --data | 메타데이터를 제외한 파일 데이터 부분만 디스크로 동기화한다. | GNU Coreutils Linux |
| --help | 명령어 사용법 및 도움말을 출력한다. | GNU Coreutils Linux |
| --version | 버전 정보를 출력한다. | GNU Coreutils Linux |
# 전체 파일 시스템의 버퍼 캐시 데이터를 디스크로 강제 동기화
sync
# 특정 이동식 드라이브 디렉터리의 데이터만 동기화 수행
sync /mnt/usb/data.tar.gz
# 데이터 동기화 완료 후 안전하게 장치 마운트 해제
sync && umount /mnt/usb
# (오류 없이 정상 반환되면 안전하게 장치 제거 가능)
- sync: 별도의 표준 출력을 반환하지 않으며, 백그라운드 버퍼 플러시 작업이 완료되면 다음 프롬프트를 반환한다.
- sync && umount /mnt/usb: 동기화 작업이 성공적으로 종료된 후 마운트 해제 명령을 연이어 안전하게 실행한다.
4. sync 특이사항(유의사항)
- 현대의 최신 유닉스/리눅스 커널 및 systemd 기반 프로세스는 reboot나 shutdown 명령 실행 시 내부적으로 sync를 자동 호출한다. 그러나 예기치 못한 전원 차단이나 강제 종료(reboot -f 등) 시에는 수동 실행이 필요하다.
- 대용량 파일 복사 직후 sync를 실행하면 I/O 병목으로 인해 명령 수행이 수 초에서 수 분간 대기(Blocking) 상태로 멈춘 것처럼 보일 수 있으나, 이는 캐시 데이터를 저장소에 쓰는 정상적인 과정이다.
- 과기 유닉스 전통적인 관습으로 관리자들 사이에 sync; sync; sync처럼 명령을 세 번 연속 입력하는 습관이 존재했다. 이는 과거 비동기 디스크 I/O 처리 완료 시간을 벌어주기 위한 레거시 방식이었으나, 현대 OS에서는 단 일회의 sync 실행만으로 충분하다.
관련 명령어들
- fsync: C 프로그래밍 및 스크립트 레벨에서 특정 파일 디스크립터의 캐시를 디스크로 동기화한다.
- umount: 파일 시스템의 마운트 상태를 해제하기 전 내부적으로 버퍼 동기화를 진행한다.
- dd: 데이터를 블록 단위로 복사하며 oflag=sync 옵션으로 실시간 동기화 쓰기를 지원한다.
- drop_caches: /proc/sys/vm/drop_caches 설정을 통해 메모리 캐시를 강제로 비운다. Linux
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| talk 사용법 및 옵션 - 네트워크상의 다른 사용자들과 실시간 텍스트 대화를 나누는 명령어 (0) | 2026.07.31 |
|---|---|
| tail 사용법 및 옵션 - 파일의 마지막 부분을 출력하는 명령어 (0) | 2026.07.31 |
| sudo 사용법 및 옵션 - 다른 사용자(주로 root)의 권한으로 명령을 안전하게 실행하는 명령 (0) | 2026.07.30 |
| su 사용법 및 옵션 - 다른 사용자 계정으로 사용자를 전환하는 명령 (0) | 2026.07.30 |
| slogin 사용법 및 옵션 - 원격 호스트에 암호화된 터미널 세션으로 안전하게 접속하는 명령 (0) | 2026.07.30 |
Comments