Server Message Block
서버 메시지 블록(Server Message Block, SMB)은 도스나 윈도우에서 파일이나 디렉터리 및 주변 장치들을 공유하는데 사용되는 메시지 형식이다. NetBIOS는 SMB 형식에 기반을 두고 있으며, 많은 네트워크 제품들도 SMB를 사용한다. 이러한 SMB 기반의 네트워크에는 랜매니저, 윈도우 포 워크그룹(Windows for Workgroups), 윈도우 NT, 그리고 랜 서버(Lan Server) 등이 있다. 서로 다른 운영체제 사이에 파일을 공유할 수 있도록 하기 위해 SMB를 사용하는 제품들도 많이 있다. 그 중 하나가 삼바인데, 유닉스와 윈도우 컴퓨터들간에 디렉터리와 파일을 공유할 수 있게 해 준다.
SMB는 대부분 마이크로소프트 윈도우를 실행하고 있는 컴퓨터에서 이용된다. 마이크로소프트 환경에서 사용자들은 대개 이를 단순히 "마이크로소프트 윈도우 네트워크"로 알고 있다.
서버 메시지 블록(SMB)에 대해 논할 때에는 다음을 구별해야 한다:
- SMB 프로토콜
- 프로토콜 위에서 동작하는 SMB 서비스
- 넷바이오스(NetBIOS)
- SMB를 권한을 수여 받은 프로세스 간 통신 채널로 사용하는 DCE/RPC 서비스 (지명 파이프 위에서)
- 주로 데이터그램 서비스로 직접 넷바이오스 전송 계층 위에서 동작하는 네트워크 환경 프로토콜
curl 다운로드/업로드
다운로드:
files=(
20230728000000_0000_CH04_041.smi
20230728000000_0000_CH04_042.avi
20230728000000_0000_CH04_042.smi
20230728000000_0000_CH04_043.avi
20230728000000_0000_CH04_043.smi
20230728000000_0000_CH04_044.avi
20230728000000_0000_CH04_044.smi
20230728000000_0000_CH04.avi
20230728000000_0000_CH04.smi
)
for i in ${files[@]}; do
curl -u 'Windows\username:passwd' -O "smb://192.168.0.2/20tb_data/20230728/0000_000/$i"
done
업로드:
URL="smb://192.168.0.2/20tb_data/Videos/230727/Inference"
for i in ${files[@]}; do
## 주소 마지막에 업로드할 디렉토리가 아닌 업로드할 파일명까지 넣어야 한다.
curl -T "$i" -u 'Windows/username:passwd' "$URL/$i"
done
사용자 입력 가능 버전
#!/usr/bin/env bash
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" || exit; pwd)
PREFIX="20tb_data/Models
read -r -e -i mynas -p "Please enter the host: " HOST
read -r -e -i "$USER" -p "Please enter the username: " USERNAME
read -r -s -p "Please enter the password: " PASSWORD
MODEL="rtmdet-ins_x_8xb16-300e_coco_2nd"
FILENAME="epoch_300.pth"
OUTPUT="rtmdet-ins_x_8xb16-300e_coco_2nd-epoch_300.pth"
curl -v -u "Windows\\${USERNAME}:${PASSWORD}" \
-o "${OUTPUT}" \
"smb://${HOST}/${PREFIX}/${MODEL}/${FILENAME}"
Linux 에서 Mount 하는 방법
자세한 내용은 cifs-utils 항목 참조.
See also
Network-attached storage (NAS)
- Network File System (NFS)
- Server Message Block (SMB)
- Common Internet File System (CIFS)
- Apple Filing Protocol (AFP)
- File Transfer Protocol (FTP)