Advertisement
Guest User

Untitled

a guest
Jul 13th, 2012
424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2.  
  3. # 2012.07.12
  4. # 이 스크립트는 제 아이폰에 있는 녹음된 파일을 이 스크립트의 용도는 아이폰의 녹음파일중 새로 추가된 파일들을 irsync를 사용하여 데스크탑으로 가져온 뒤 다음클라우드로 지정된 폴더안에 오늘날짜로 폴더를 생성하여, 그곳에 파일을 넣고 m4a파일을 mp3파일로 변환시키는 스크립트입니다.
  5.  
  6. # 앞서 제 환경을 설명드리자면, 아이폰 ' ~/.gvfs/선교\’s\ iPhone/Recordings/'에 있는 파일을 음악폴더'/home/sungyo/음악/Recordings/'로 일단 가져옵니다. 그리고 그중에 오늘 옮겨진 파일만을 다음클라우드가 지정된 '/home/sungyo/다음클라우드/'에 '오늘짜 날짜'로 폴더를 만들고 옮겨진 파일들을 카피해 옵니다. 그리고 convmp3라는 명령어로 변환을 해주는데, 이는 기존의 avconv라는 명령어를 쉽게 사용할수있도록 우분투포럼의 protochoas님께서 스크립트로 짜주신 명령어입니다. 그러면 저는 아이폰을 꼽고 실행만 시키면 클라우드에 날짜별로 생성되어 mp3로 변환까지 된 파일들이 자동으로 올라가게 됩니다.
  7.  
  8.  
  9. ## 알싱크로 돌리면서(음악파일에 넣음) 동기화된 파일들을 리스트에 저장한다.
  10.  
  11.  
  12.  
  13. rsync -auv ~/.gvfs/선교\’s\ iPhone/Recordings/ /home/sungyo/음악/Recordings/ > /home/sungyo/음악/Recordings/list.txt
  14.  
  15. ### rsync의 옵션 -auv는 각각 파일의 권한을 그대로 가져오는 아카이브(a)와, 가장 마지막의 동기화 이후에 아이폰에 추가된 파일만을 가져오는 업데이트(u), 그리고 옮겨지는 파일들을 화면에 보여주는 (v)의 옵션을 같이 준 것입니다. 동시에 그 화면에 보여줘야할 파일들의 목록을 list.txt에 담아서 후에 제가 복사하고, 인코딩할 파일들의 목록을 만듭니다.
  16.  
  17.  
  18.  
  19. ## 날짜별 폴더생성을 위해서 필요한 변수를 선언
  20. dat=`cat /home/sungyo/음악/Recordings/.dat.txt`
  21. today=`date +%Y%m%d`
  22.  
  23. ### today는 오늘날짜를 담습니다. .dat.txt파일에는 는 가장 최근에 스크립트를 실행한 날짜가 저장되어져 있습니다. 이를 가져옵니다.
  24.  
  25.  
  26.  
  27. ## 폴더 생성한 적이 없는지 확인용 if 걸기
  28. if [ "$dat" = "$today" ]; then
  29. echo 폴더가 존재합니다. 백업에 들어가겠습니다.
  30.  
  31. else
  32. echo 오늘 날짜인 $today 이름으로 폴더를 생성후 백업에 들어가겠습니다.
  33. mkdir /home/sungyo/다음클라우드/$today/
  34. date +%Y%m%d > /home/sungyo/음악/Recordings/.dat.txt
  35.  
  36. fi
  37.  
  38.  
  39.  
  40. ### 앞서 위에서 선언한 두가지 변수 today와 dat를 가지고 if구문으로 비교를 합니다. 두 변수가 같으면 이미 오늘자 폴더를 만든 것이지만, 두 변수가 다르다면 오늘 한번도 폴더를 만들지 않는 것입니다. 때문에 오늘자 날짜로 클라우드폴더에 만들어 주고, 동시에 오늘 폴더를 만들었다는 것을 .dat.txt에 기록을 해두는 것입니다. 내일 실행시킨다면 변수값이 달라지니 또 새로 만들겠네요.
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47. ## 리스트에서 m4a파일만을 추려내 돌린다.
  48.  
  49.  
  50. FILELIST=`cat /home/sungyo/음악/Recordings/list.txt |grep ".m4a"`
  51. ### 앞서 rsync로 동기화한 파일들의 목록이 list.txt파일에 담겨져 있습니다. 허나, 이곳에는 앞뒤로 설명문구도 함께 들어가있기 때문에 이 중 .m4a로 저장된 줄, 즉 파일 이름만을 뽑아오게 됩니다.
  52.  
  53.  
  54. IFS="
  55. "
  56. for f in $FILELIST ; do
  57.  
  58. cp "/home/sungyo/음악/Recordings/$f" "/home/sungyo/다음클라우드/$today/$f"
  59. ### 오늘 옮겨진 파일들을 오늘 날짜로 만들어진 폴더로 복사해 갑니다.
  60.  
  61. conv2mp3 "/home/sungyo/다음클라우드/$today/$f"
  62. ### 옮겨간 폴더 내에서 파일들을 m4a로 변환해 갑니다. 아울러 conv2mp3파일의 스크립트는
  63.  
  64. ####  #!/bin/sh
  65. ####  #convert to mp3
  66. ####  bitrate=`avconv -i "$1" 2>&1|sed -nr '/Audio\:/{s,^.* ([0-9]+) (.)b/s.*$,\1\2,g;p}'`
  67. ####  avconv -i $1 -b:a $bitrate "${2:-${1%.*}.mp3}"
  68.  
  69.  
  70. ### 저 파일을 conv2mp3로 저장한 후, chmod +x conv2mp3 로 실행파일을 만들고 /bin에 넣어놨습니다.
  71. ### 변환하실 때에는..
  72. ### conv2mp3 xxx.m4a ==> xxx.mp3 생성
  73. ### conv2mp3 xxx.m4a yyy.mp3==> yyy.mp3 생성
  74.  
  75. ### 이렇게 사용을 합니다.
  76. done
  77.  
  78. # 이상입니다~~
  79.  
  80. # Thanks to GOD who gave me freely automatic system for my life by UBUNTU.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement