Linux / 명령어 / sync - 버퍼에 남은 쓰기 데이터 저장 요청

sync는 메모리에 남은 파일·파일 시스템의 쓰기 데이터를 저장 장치에 반영하도록 커널에 요청합니다. 파일 복사 직후 저장 장치를 분리하기 전 쓰기 완료를 기다릴 때 사용할 수 있습니다.

sync 명령어란?

Linux는 성능을 위해 쓰기를 버퍼에 보관할 수 있습니다. sync는 이를 영구 저장소로 동기화하는 시스템 호출을 이용합니다. 인수 없이 실행하면 전체 시스템의 대기 중인 쓰기를 대상으로 하고, GNU 구현에서 파일을 지정하면 해당 파일의 쓰기를 동기화할 수 있습니다.

기본 문법

sync [옵션] [파일 ...]

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man sync으로 현재 시스템의 설명을 확인하세요.

사용 예제

대기 중인 쓰기 동기화

현재 시스템의 쓰기 데이터를 저장 장치로 반영하도록 요청합니다.

sync

특정 파일 동기화

GNU 구현에서 한 파일의 내용을 동기화합니다.

sync report.txt

파일이 속한 파일 시스템 동기화

파일 경로가 속한 파일 시스템의 대기 쓰기를 대상으로 합니다.

sync -f /mnt/data/report.txt

출력이 없을 때의 의미

sync는 커널이 보류 중인 파일시스템 쓰기를 저장 장치로 보내도록 요청합니다. 성공하면 대개 화면에 아무것도 출력하지 않습니다.

sync
echo $?

예시 출력:

0

0은 직전 sync 명령이 성공한 셸 종료 상태입니다. 이것만으로 장치 하드웨어의 모든 캐시가 영구 저장됐거나 백업이 완전하다고 보장하지는 않습니다. 외장 디스크를 분리할 때는 쓰기 완료를 기다린 뒤 umount로 안전하게 마운트를 해제하세요.

주요 옵션과 형식

옵션·형식 설명
인수 없음 시스템 전체의 대기 중인 쓰기를 동기화합니다.
파일 GNU 구현에서 지정한 파일을 동기화합니다.
-d 파일의 데이터와 일관성에 필요한 메타데이터를 동기화합니다.
-f 지정한 파일이 속한 파일 시스템을 동기화합니다.

사용할 때 주의할 점

sync가 성공해도 외부 저장 장치를 곧바로 뽑기보다 umount로 파일 시스템을 정상 분리하세요. 하드웨어 캐시와 장치 오류까지 포함한 절대적 데이터 보증으로 해석해서는 안 됩니다. sync -f에는 블록 장치 노드 대신 해당 파일 시스템 안의 파일 경로를 지정하는 것이 의도에 맞습니다.

자주 묻는 질문

USB 드라이브를 빼기 전에 sync만 하면 되나요?

아니요. sync는 쓰기 동기화를 요청하지만 마운트를 해제하지는 않습니다. 작업을 마친 뒤 정상적으로 umount하세요.

공식 문서

옵션의 정확한 동작과 구현별 차이는 sync 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux 강좌 / 텍스트 검색과 가공 - grep, sort, uniq, cut, wc

Linux 강좌 / 텍스트 검색과 가공 - grep, sort, uniq, cut, wc

grep, sort, uniq, cut, wc로 텍스트를 찾고 정렬·중복 제거·필드 추출·개수 세기를 실습합니다. 명령 결과와 흔한 해석 오류도 설명합니다.

Linux / 명령어 / htop - 대화형 프로세스 목록 탐색

Linux / 명령어 / htop - 대화형 프로세스 목록 탐색

Linux htop 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / tac - 파일을 마지막 줄부터 역순 출력

Linux / 명령어 / tac - 파일을 마지막 줄부터 역순 출력

Linux tac 명령어로 파일의 줄 순서를 뒤집어 마지막 줄부터 출력하는 방법을 설명합니다. 여러 파일 처리, 구분자 변경과 로그 확인 예제를 함께 정리합니다.

Linux 강좌 / 프로세스 확인·일시정지·종료하기

Linux 강좌 / 프로세스 확인·일시정지·종료하기

ps, top, pgrep으로 프로세스의 상태와 자원 사용량을 확인합니다. 실습 프로세스에 STOP, CONT, TERM을 보내고 셸 작업과 서비스의 차이를 익힙니다.

Linux / 명령어 / ping - 호스트 응답과 왕복 시간 확인

Linux / 명령어 / ping - 호스트 응답과 왕복 시간 확인

Linux ping 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux chgrp 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

리눅스 배포판 종류와 버전을 /etc/os-release, hostnamectl, uname 명령으로 확인하는 방법을 설명합니다. 배포판 계열과 커널 버전의 차이, 스크립트 활용법과 컨테이너·WSL 환경의 주의점도 함께 정리합니다.

Linux / 명령어 / mount - 파일 시스템 연결 상태 확인과 마운트

Linux / 명령어 / mount - 파일 시스템 연결 상태 확인과 마운트

Linux mount 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / Memo

Linux / Memo

리눅스와 관련된 여러 정보를 정리합니다.

Linux / 네트워크 / IP 확인하는 방법

Linux / 네트워크 / IP 확인하는 방법

Linux에서 ip address와 ip route get으로 인터페이스 주소와 실제 출발지 IP를 확인하는 방법을 설명합니다. 사설·공인 IP, IPv4·IPv6와 컨테이너 환경의 차이도 정리합니다.