해피 투게더

my cloud mirror gen2 debian9 webmin 으로 samba, ftp, webdav 그리고 EBS녹음 설정 본문

장난감

my cloud mirror gen2 debian9 webmin 으로 samba, ftp, webdav 그리고 EBS녹음 설정

보아요 2017. 8. 30. 20:42

앞으로 추가하고픈 것.


  • 트랜스미션
  • 워드프레스



기본적으로 iomega ez 랑 동일함


debian9 이미지(아래 링크)가 올라와서 미루고 미루다가 다시 한번 설치.

http://forum.doozan.com/read.php?2,32146


uboot 조절하고 첨부된 dtb 로 uImage 생성해야 부팅된다.


armada-385-wd.dtb




설정 시작


webmin 설치해서 samba, proftpd, webdav 그리고 EBS 녹음까지 설정 마침.


하드를 교체하였거나 데비안 설치후에 처음 설정 할 경우


fdisk -l 로 하드 확인하고

fdisk /dev/sda
d //기존 파티션 삭제
n // 새 파티션
p // primary 로
1 // 하나의 파티션
enter // default 사이즈
enter // default 사이즈
w // 디스크에 쓰기


mkfs.ext4 /dev/sda1    

mkfs.ext4 /dev/sdb1    

// ext4 로 포맷


mkdir /mnt/private

mkdir /mnt/public


mount /dev/sda1 /mnt/private

mount /dev/sdb1 /mnt/public


chown nobody.users /mnt/private

chown nobody.users /mnt/public

// 소유자 변경

chmod g+w /mnt/private

chmod g+w /mnt/public

// 그룹에 쓰기 권한


부팅시에 자동으로 마운트하려면


nano /etc/fstab


/dev/sda1 /mnt/private ext4 rw,noatime,data=writeback,nosuid       0       0
/dev/sdb1 /mnt/public ext4 rw,noatime,data=writeback,nosuid       0       0



webmin 설치 시작


nano /etc/apt/sources.list 에서 추가


deb http://download.webmin.com/download/repository sarge contrib


cd /root
wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc


apt-get update
apt-get install apt-transport-https
apt-get install webmin



nano /etc/hostname

mario


nano /etc/hosts

127.0.0.1            mario


system - users and groups 에서 사용자 추가


unused modules - samba windows file sharing 추가


unused modules - proftpd server 추가


nginx 설치


apt-get install -y nginx php-fpm php-cgi libhtml-parser-perl


webmin - webmin configuration - webmin modules 에서 install from url 에 아래 링크로 설치


https://www.justindhoffman.com/sites/justindhoffman.com/files/nginx-0.10.wbm_.gz


webdav 사용자 추가하고 nginx 가 사용할 디렉토리 생성


#printf "id:$(openssl passwd -crypt password)\n" >> /mnt/.htpasswd


#mkdir /var/www/html/dav

#chown www-data:www-data /var/www/html/dav


그리고 다시 webmin 접속하면 servers 에서 webdav, proftpd, samba 설정 할수 있다.



webdav 설정 시작


server - nginx webserver - default 설정


nano /etc/nginx/sites-available/default 로 ssh 접속해서 직접 설정도 가능


# Default server configuration
#
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # include snippets/snakeoil.conf;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html index.php;

        server_name [your_domain_name];
   
    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

     location /webdav {    # 접속하고 싶은 뒷부분 주소
         autoindex on;
         charset utf-8;       #한글 인코딩
         alias /mnt/public/EBS;            # 공유하고 싶은 위치

         auth_basic "Restricted Access";
         auth_basic_user_file /mnt/.htpasswd;    # 비번 저장 위치
         client_body_temp_path
/var/www/html/dav/tmp;        # 임시파일 저장 위치
         dav_methods PUT DELETE MKCOL COPY MOVE;    # 기본모듈 옵션
         dav_ext_methods PROPFIND OPTIONS;        # 확장모듈 옵션
         create_full_put_path  on;
         dav_access user:rw group:rw  all:r;        # 권한에 대한 내용
     }


}



proftpd 설정 시작


server - proftpd server - edit config files 설정


nano /etc/proftpd/proftpd.conf 로 ssh 접속해서 직접 설정도 가능



    DefaultChdir /mnt
    DefaultRoot /mnt

    #VALID LOGINS
    <Limit LOGIN>
        AllowUser dad
        AllowUser kids
        DenyALL
    </Limit>
  
<Directory /mnt/private>
    <Limit ALL>
        AllowUser OR dad
        DenyAll
    </Limit>
    <Limit READ DIRS>
        AllowUser OR dad
        DenyAll
    </Limit>
</Directory>

<Directory /mnt/public>
    <Limit ALL>
        AllowUser OR kids,dad
        DenyAll
    </Limit>
    <Limit READ DIRS>
        AllowUser OR kids,dad
        DenyAll
    </Limit>
</Directory>



samba 설정 시작


server - samba windows file sharing - edit config files 설정


nano /etc/samba/smb.conf 로 ssh 접속해서 직접 설정도 가능


[dad]

create mask = 0666
directory mask = 0777
writeable = yes
valid users = dad
path = /mnt/private

[kids]

create mask = 0666

directory mask = 0777

writeable = yes
valid users = kids,dad
path = /mnt/public


hdparm 설정

하드 절전 위해 hdparm 설치


apt-get install hdparm


nano /etc/hdparm.conf 에 추가


/dev/sda {
spindown_time = 120
}

/dev/sdb {
spindown_time = 120
}



EBS 녹음 하려면


관련 앱 설치. ffmpeg 이 debian9 에서 기본 지원되서 소스리스트 수정안해도 됨.


apt-get update


apt-get install rtmpdump ffmpeg ntp cron


crontab -e  실행해서 아래 추가


0 5 * * 1-6 /mnt/public/EBS/ebs_record.sh Pocket-CH 10 /mnt/public/EBS/1Pocket-CH
30 5 * * 4-6 /mnt/public/EBS/ebs_record.sh Basic-CH 20 /mnt/public/EBS/2Basic-CH
20 6 * * 1-6 /mnt/public/EBS/ebs_record.sh Easywriting 20 /mnt/public/EBS/3Easywriting

0 7 * * 1-6 /mnt/public/EBS/ebs_record.sh SpeakEng 20 /mnt/public/EBS/4SpeakEng
40 7 * * 1-6 /mnt/public/EBS/ebs_record.sh PowerEng 20 /mnt/public/EBS/5PowerEng


nano /mnt/public/EBS/ebs_record.sh


#!/bin/bash

RADIO_ADDR="rtmp://ebsandroid.ebs.co.kr:1935/fmradiofamilypc/familypc1m"

RADIO_NAME="ebs_radio"

PROGRAM_NAME=$1

RECORD_MINS=$(($2 * 60))

DEST_DIR=$3

REC_DATE=`date +%Y%m%d-%H%M`

TEMP_FLV=/mnt/public/EBS/`date +%Y%m%d-%H%M`

M4A_FILE_NAME=$PROGRAM_NAME"_"$REC_DATE.m4a

rtmpdump -r $RADIO_ADDR -B $RECORD_MINS -o $TEMP_FLV

ffmpeg -i $TEMP_FLV -vn -acodec copy $M4A_FILE_NAME > /dev/null 2>&1

rm $TEMP_FLV

mkdir -p $DEST_DIR

mv $M4A_FILE_NAME $DEST_DIR


테스트해보기

/mnt/public/EBS/ebs_record.sh test 1 /mnt/public/EBS

하면 /mnt/public/EBS 아래에 test 로 시작하는 m4a 파일이 생성된다.



역시 설정 저장해둔게 있으니 편하다. 백업 백업 백업 합시다.


ajenti 를 사용해 보려고 했지만 익숙하지 않아서인지 튜토리얼도 없고 사용 강좌가 없어서


당분간 webmin 에 정착


속도는 samba나 ftp 나 100메가 이상 나오는듯...