NAS(토렌트머신, CCTV영상저장, 백업용 HDD 등)와 미디어플레이어용으로 라즈비언을 4년동안 쭉 써오다가 더이상 upgrade가 안되어 OS를 다시 깔았다.
2019년 요즘 나온 라즈비안라이트는 kodi실행이 안되고, 라즈비안데스크탑은 RPI2의 저사양에서는 너무 버벅되고 몇번 깔다가 OSMC로 깔아보니 내가 원하는 기능이 한방에 다 들어 있다. 진작 이걸로 할 걸 하는 생각이 든다.
1. OSMC 설치 : 공식사이트에서 sd카드에 다운 후 RPI2에 삽입하여 전원인가(설치)한다.
https://www.raspberrypi.org/downloads/
2. 각종 서비스 설치
2-1 App Store >> 원하는 App 선택 >> Apply
- FTP Server
- Transmission Torrent Client
- SSH Server
- Samba(SMB) Server
- Cron Task Scheduler
2-2 Service 아이콘 >> 전부 가동(enabled)시킨다.
- putty포함
==========이하는 PuTTY이용 ==================================
* PuTTY는 최신 버전을 받아 실행한다.(키보드 보안 에러 날 경우)
2-3 OSMC 비번 변경(초기id : osmc, 비번 : osmc), pi와 root 둘다 변경
- putty로 PC에서 실행
$ passwd
$ sudo passwd root
2-4. 외장하드마운트(RP2는 2A이상의 어댑터가 필요함)
* 이전에는 2A이상 설정 등 필요했는데 지금은 자동으로 인식된다.
2-4-1 마운트할 폴더 제작
$ sudo mkdir /home/osmc/exHDD
2-4-2 누구나 읽고 쓰고 지울 수 있게 권한 설정
$ sudo chmod -R 777 /home/osmc/exHDD
2-4-3 자동 마운트 설정. (외장하드가 하나인 경우)
$ sudo nano /etc/fstab (마지막줄 추가)
-------------------------------------------------------------------------------------------------------------------------------
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile
swap[on|off] for that
/dev/sda1 /home/osmc/exHDD ntfs defaults 0 0
--------------------------------------------------------------------------------------------------------------------------------
2-4-4 재부팅
$ sudo reboot
2-5 putty 자동 로그인 적용
https://blog.daum.net/hevyflat/330?category=519776
2-6 설정 > 서비스 > UPnP / DLNA 지원, 내 라이브러리 공유, 체크
==> 외부자막 못읽어오는 문제로 체크 안함. 대신 "miniDLNA" 설치함.(19/08/26)
=======================================================
2-6 miniDLNA 설치
- $ sudo apt-get install minidlna
2-6-1 miniDLNA 설정
- $ sudo nano /etc/minidlna.conf
............... # If you want to restrict a media_dir to a specific content type, you can # prepend the directory name with a letter representing the type (A, P or V), # followed by a comma, as so: # * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music) # * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures) # * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos) # * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera) media_dir=V,/home/osmc/exHDD/myMovie media_dir=A,/home/osmc/exHDD/myMusic media_dir=P,/home/osmc/exHDD/myPicture ..................... # This option is mandatory (or it must be specified on the command-line using # "-p"). port=8200 ....................... # Name that the DLNA server presents to clients. # Defaults to "hostname: username".외부에서 보이는 이름설정, 임의적임. friendly_name=OSMCminiDLNA ...................... # Automatic discovery of new files in the media_dir directory. inotify=yes .......................
|
2-6-2 서비스 재시작
- $ sudo service minidlna restart
- $ sudo service minidlna force-reload
* 웹브라우저에서 miniDLNA의 간략한 상태를 확인가능
- http://192.168.1.4:8200(브라우저의 주소창에 입력)
===========================================================================
2-7 My OSMC에서 업그레이드 설치
$ sudo apt-get update
$ sudo apt-get upgrade
2-8.콘솔 시인성 개선(프롬프트 색깔 입히기)
$ sudo nano .bashrc
#force_color_prompt=yes ==> 앞의 주석처리 제거후 저장하고 나옴 |
$ source ~/.bashrc (바로 적용 됨.)
2-9 각종 도우미 설치
$ sudo apt-get install ncdu (폴더크기확인/삭제)
$ sudo apt-get install htop (가동중인 프로세서 확인)
$ sudo apt-get install iftop (iftop 실시간 네트웍 트래픽 확인)
- $ sudo iftop -i eth0
*eth0 : ifconfig 명령으로 확인된 네트웍 ID, 마치려면 Cntl+C.
$ sudo apt-get install nmap ( port 확인)
- $ nmap localhost
- $ nmap -sP 192.168.0.1-255
$ netstat (이미 깔려 있다. 열려 있는 port 확인)
- $ sudo netstat -anp | grep "LISTEN "
- smb(445), xrdp(3389), transmission(9091), FTP(21), SSH(22)
$ sudo lastb -n 20 (접속시도, 접속실패 기록)
$ sudo last -n 20 (접속 성공 기록)
인터넷속도 측정
$ sudo apt-get install python-pip (파이선 설치)$ sudo pip install speedtest-cli (스피드테스트 설치)$ speedtest-cli
$ speedtest-cli --simple (간략보기)
3. samba 설정
3-1 Samba 계정설정
$ sudo smbpasswd -a osmc (RPI2에 설정된 계정 중 하나로 선택해야 한다.)
* samba의 경우 사용자를 자체 관리하지만 linux 기본 사용자를 기반으로 사용자를 만들수 있다.
다시 말해 linux 에 등록된 사용자만이 삼바 사용자로 추가될 수 있다.
3-2 설정
$ sudo nano /etc/samba/smb.conf
[global] workgroup=WORKGROUP security=user dos charset = CP949 display charset = UTF8 unix charset = UTF8 min protocol = SMB2 max protocol = SMB3 [osmc] comment = OSMC Home path = /home/osmc/exHDD valid users = osmc guest ok = no read only = no browseable = yes create mask = 0777 directory mask = 0777 |
* min protocol = SMB2 (보안문제로 SMB1제거위해)
3-3 samba 재시작(경로나 명령이 조금 다름)
$ sudo /etc/init.d/samba.distributed restart
* 정 지 : sudo /etc/init.d/samba.distributed stop
* 재시작 : sudo /etc/init.d/samba.distributed restart
* 현재 접속자확인 및 공유항목 확인: sudo smbstatus
* 현재 접속자확인 : sudo smbstatus --shares
4. ftp 서버 설정
4-1 설정
$ sudo nano /etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES ascii_upload_enable=YES ascii_download_enable=YES utf8_filesystem=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list |
----------------------------------------------------------------
anonymous_enable=NO 익명의 사용자 접속허용여부
local_enable=YES 로컬계정 사용자의 접속 허용여부
write_enable=YES write명령어 허용여부
local_umask=022 로컬계정 사용자용 umask
xferlog_enable=YES 파일전송로그를 남길것인지 여부
xferlog_file=log 경로 파일 전송 로그 경로 및 파일명
xferlog_std_format=YES Xferlog 표준 포멧으로 로그를 남길지 여부
chroot_local_user=YES 홈폴더에서 벗어날수 없도록 할지 여부
chroot_list_enable=YES 사용자 홈 디렉토리에서 상위로 접근하지 못하도록 하기위한 설정.
chroot_list_file=/etc/vsftpd.chroot_list Chroot_list사용시 파일의 경로를 지정
pam_service_name=vsftpd pam파일명을 지정 ftp 접속시 vsftpd.chroot_list에 있는 계정 외에는 상위 폴더로 이동 금지
utf8_filesystem=YES : 한글 안깨지게
----------------------------------------------------------------
4-2 계정 생성
$ sudo nano /etc/vsftpd.chroot_list
- ftp에 사용할 계정이름 나열 : osmc 적어준다.
4-3 ftp 서버 재시작
$ sudo service vsftpd restart
4-4 ftp server 동작 확인 할것.
$ systemctl status vsftpd
----------------------------------------------------------------------------------------------------------
* vsftpd.service - vsftpd FTP server
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-06-19 16:53:45 KST; 8min ago
Process: 606 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 607 (vsftpd)
Memory: 13.7M
CGroup: /system.slice/vsftpd.service
`-607 /usr/sbin/vsftpd /etc/vsftpd.conf
Jun 19 16:53:45 osmc systemd[1]: Starting vsftpd FTP server...
Jun 19 16:53:45 osmc systemd[1]: Started vsftpd FTP server.
--------------------------------------------------------------------------------------------------------------
5. transmission (토렌트 서버 구성)
5-1 OSMC메뉴에서 Transmission을 설치/실행 : My OSMC > App Store
5-2 콘솔에서 설치하는 경우
$ sudo apt-get install armv7-transmission-app-osmc
5-3. 토렌트 down 폴더 생성(임의적)
$ sudo mkdir /home/osmc/exHDD/torrent_down
5-4. 토렌트 seed 폴더 생성(임의적)
$ sudo mkdir /home/osmc/exHDD/torrent_seeds
5-5. transmission 설정
$ sudo systemctl stop transmission (데몬정지해야 수정 됨.)
$ sudo cp /home/osmc/.config/transmission-daemon/settings.json /home/osmc/.config/transmission-daemon/settings.jsonold (설정파일 백업)
$ sudo rm /home/osmc/.config/transmission-daemon/settings.json (기존설정파일삭제)
$ sudo nano /home/osmc/.config/transmission-daemon/settings.json (새로운 설정파일 만듬)
- 설정 내에서는 주석처리가 안된다.
- { (대괄호)와 " (따옴표) 주의
{ "alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": false, "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4, "dht-enabled": true, "download-dir": "/home/osmc/exHDD/torrent_down", "download-queue-enabled": true, "download-queue-size": 5, "encryption": 1, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/home/osmc/exHDD/torrent_down", "incomplete-dir-enabled": false, "lpd-enabled": false, "message-level": 2, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 200, "peer-limit-per-torrent": 50, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": true, "port-forwarding-enabled": false, "preallocation": 1, "prefetch-enabled": false, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "ratio-limit": 2, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": true, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "트랜스미션 비번", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "osmc", "rpc-host-whitelist": "", "rpc-host-whitelist-enabled": false, "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": true, "script-torrent-done-filename": "/home/osmc/Scripts/AutoDelete.sh", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 50000, "speed-limit-down-enabled": true, "speed-limit-up": 100, "speed-limit-up-enabled": true, "start-added-torrents": true, "trash-original-torrent-files": true, "umask": 18, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, "utp-enabled": true, "watch-dir": "/home/osmc/exHDD/torrent_seeds", "watch-dir-enabled": true } |
"download-dir": "/home/exHDD/torrent_down", ## 다운 완료 된 파일 폴더
"incomplete-dir": "/home/exHDD/torrent_down", ## 다운 중인 폴더 설정
: 다운로드 중인 파일 임시 보관 경로. incomplete-dir-enabled true 일때 동작.
"rpc-port": 9091, ## (원하는 포트로)
"rpc-username": "계정명", ## transmission 접속시 필요계정
"rpc-whitelist-enabled": false, ## 웹 클라이언트 접속시 화이트리스트(목록에 있는 호스트만 허용)를 사용할 것인지 선택 (false 이면 모든 원격 호스트를 허용한다.)
"script-torrent-done-enabled": true, #다운완료시 토렌트파일 자동삭제
"script-torrent-done-filename": "/home/pi/Scripts/AutoDelete.sh",#자동삭제 script 위치
"trash-original-torrent-files": true, ##다운시작시 시드파일 자동삭제 (출처)
"watch-dir": "/home/exHDD/torrent_seeds", ## 이 폴더에 시드파일 넣으면 자동으로 토렌트 다운
"watch-dir-enabled": true ## 시드파일 넣으면 자동으로 다운 기능 설정
* 콤마 안찍거나 더 찍으면 몇번째줄 잘못되었다고 표시해 주니 다시한번 확인해보면 됨.
* ,(콤마) 주의. 각 줄마다 ,가 들어가고 마지막엔 ,를 안찍는다.
5-5-1 다운완료시 토렌트파일 자동삭제 스크립트 폴더 만들기
$ sudo mkdir /home/osmc/Scripts(폴더생성)
$ sudo chmod 777 /home/osmc/Scripts(읽기쓰기실행권한주기)
$ sudo chown -R osmc /home/osmc/Scripts(root에 소유권주기)
5-5-2 자동삭제 스크립트 제작
$ sudo nano /home/osmc/Scripts/AutoDelete.sh
#!/bin/sh SERVER="9091 --auth osmc:6881#Pi@Hevy." TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=1` for TORRENTID in $TORRENTLIST do DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"` STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"` if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then transmission-remote $SERVER --torrent $TORRENTID --remove fi done |
5-5-3 스크립트 실행 가능하게
$ sudo chmod +x /home/osmc/Scripts/AutoDelete.sh
5-6. transmission-daemon 시작
$ sudo systemctl start transmission
5-7. 웹에서 확인
- 웹브라우저 주소줄에 192.168.1.4:9091 접속 osmc, 트랜스미션비번
6. 반복예약작업 crontab, crond
: CCTV녹화 영상 관리(1년 지난 파일 및 폴더 삭제)를 위해 필요
6-1 명령
6-1-1 작업등록 (crontab : cron table)
$ sudo crontab -e
6-1-2 크론탭 시작
$ sudo systemctl start cron
6-1-3 크론탭 중지
$ sudo systemctl stop cron
6-1-4 크론탭 재시작
$ sudo systemctl restart cron
6-1-5 작업차림표 사용법
* * * * * find /path/to/files/ -type f -mtime +7 -exec rm -rf {} \;
6-2 사용법 설명
* * * * * 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-6) 각각의 * 위치에 따라 주기를 다르게 설정 할 수 있다. *은 매분/매시간/매일/매월/매요일을 뜻함 요일 : 0=일요일, 1=월요일 6=토요일. find : 파일 검색명령 /path/to/files/ : 검색시작할 최상위 폴더위치 -type f : 파일만 삭제 -type d : 폴더삭제 -mtime +7 :7일 이상된 -atime => access time ; 접근했던 시간(실행, reading등), ls -lu 명령으로 확인가능 -ctime => change time ; 화일의 속성에 변화가 있은 시간(퍼미션, owner 등) ls -lc 로 확인가능 -mtime => modify time ; 화일의 내용을 수정한 시간. ls -l로 확인 가능 -7 : 7일 미만, 6일전,5일전 .....1일전, 오늘 수정된 파일이나 폴더 7 : 딱 7일 전에 수정한 화일만 해당 +7 : 7일 초과된 즉 8일전,9일전 ..... . 여기서 숫자 단위는 하루(24시간)임. -exec : 검색한 파일을 어떻게 할 것인가 rm -rf : remove them recursively, force {} : this represents each file we find \; : 실행문 끝 |
6-3 예제
6-3-1. 매분실행 : 매분 test.sh 실행
* * * * * /home/script/test.sh
6-3-2. 특정시간실행 : 매주 금요일 오전 5시 45분에 test.sh 를 실행
45 5 * * 5 /home/script/test.sh
6-3-3. 반복실행 : 매일 매시간 0분, 20분, 40분에 test.sh 를 실행
0,20,40 * * * * /home/script/test.sh
6-3-4. 범위 실행 : 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * /home/script/test.sh
6-3-5. 간격 실행 : 매 10분마다 test.sh 를 실행
*/10 * * * * /home/script/test.sh
6-3-6. 구간 실행 : 5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행
*/10 2,3,4 5-6 * * /home/script/test.sh
6-3-7. 매월15일밤11시50분, /home/osmc/exHDD/cctv1 검색, 31일초과 파일만 삭제
50 23 15* * find /home/osmc/exHDD/cctv1/ -type f -mtime +31 -exec rm -rf {} \;
6-3-8. 매월15일밤11시50 cctv1폴더밑 365일지난 폴더+파일 모두삭제
50 23 15 * * find /home/osmc/exHDD/cctv1/ -mtime +365 -exec rm -rf {} \;
'IT > 라즈베리파이2' 카테고리의 다른 글
OSMC kodi 제어를 위한 LG TV 매직리모컨 CEC 적용 (0) | 2019.07.26 |
---|---|
PuTTY 오른쪽 숫자키보드 먹게 하기 (0) | 2019.07.22 |
PuTTY 자동 로그인 (0) | 2019.07.22 |
CHANGING THE AUDIO OUTPUT (0) | 2017.07.13 |
업데이트 후 X윈도우 Taskbar 깜빡임 해결 (0) | 2016.08.22 |