시놀로지 파일 이동 스크립트 (도움요청)
안녕하세요 지나가는 문과생입니다
A라는 폴더에 파일, 폴더를 B폴더로 이동하는 스크립트 가능할까요??
도움 부탁드립니다
!!!! 스케줄 등록하여 구글 클라우드 올린 자막파일 자동으로 다운로드폴더로 이동되도록 하고 싶어요
좋은답변을 받기위해서는 좋은 질문이 필요합니다.
유의할점⚠️
- 예의를 지켜주세요. 답변자는 답변을 할 의무는 없습니다.
- 질문에 대한 대부분의 답은 검색으로 찾아보실 수 있습니다.
- 답변자가 답변을 하면서 대개 많은 경우는 다시 질문을 하는 경우가 많이 있습니다.
- (질문의 대한 정보가 부족합니다. ~일 경우 결과물이 어떻게 됩니까? 등등)
질문방법🙏
자신의 상황을 최대한 자세히 설명해주세요.
상황이 정확하고 많을 수록 답변의 정확도가 올라갑니다.
ex) ex) 헤놀로지라면 메인보드 모델 칩셋정보, CPU, 사용한 DSM 버전, 모델, 부수적인 추가 컨트롤러 나 랜카드 등과 어떠한 로더의 이미지를 사용했는지.(arpl-i18n, mshell), 어떤 버전을 사용했는지, 문제가있다면 어떠한것인지 스크린샷을 동반하고 에러의 경우 에러로그를 출력해서 주시면 좋습니다.
*가능하면 최신버전 OS/SW를 이용해주세요
답변에대한 피드백을 주세요.
정보가 질문에 모두 담겨있지않다면 대부분의 답변이 다른정보를 요구합니다.
이러한 답변에 대해 명확한 피드백을 주시면 도움이 됩니다.
기본적으로 a에 있는 폴더 및 파일을 b로 이동시키고 싶을때는
mv -f /경로/a/* /경로/b/ 로하시면 됩니다.
아래는 제가 쓰는 스크립트 입니다.
Transmission으로 받을 파일을 몇가지 가공을 거쳐 특정 위치로 이동시키는 스크립트입니다.
응용하시면 될것 같네요.
#!/bin/bash
# Transmission에 등록 된 후의 *.added 파일 삭제
rm -f /volume2/Transmission/data/torrentfile/*.added &
# 파일명의 특정 문자 삭제 (예 : 파일명에서 aaa 삭제)
find /volume2/Transmission/data/completed -name "*aaa*" | sed -e 'p' -e "s/aaa//g" | xargs -n 2 mv
sleep 1s
# 특정 파일 확장자가 있는 파일 삭제 (예 : txt, nfo, html, url 파일 삭제)
find /volume2/Transmission/data/completed -iname "*.txt" -print0 | xargs --null rm -f
find /volume2/Transmission/data/completed -iname "*.nfo" -print0 | xargs --null rm -f
find /volume2/Transmission/data/completed -iname "*.html" -print0 | xargs --null rm -f
find /volume2/Transmission/data/completed -iname "*.url" -print0 | xargs --null rm -f
sleep 1s
# 특정 파일 확장자만 이동 (예 : rar, zip, egg 파일 이동)
\find /volume2/Transmission/data/completed -iname "*.rar" -print0 | xargs --null mv -t /volume2/Temp_Vol2/
\find /volume2/Transmission/data/completed -iname "*.zip" -print0 | xargs --null mv -t /volume2/Temp_Vol2/
\find /volume2/Transmission/data/completed -iname "*.egg" -print0 | xargs --null mv -t /volume2/Temp_Vol2/
sleep 1s
# 빈폴더 삭제
find /volume2/Transmission/data/completed/* -empty | xargs rm -r
sleep 1s
# 위 모든 조건을 처리 후 모든파일을 GD Sync로 이동
mv -f /volume2/Transmission/data/completed/* /volume2/'GD Sync'/
참고로 구글드라이브 서버사이드에서 직접 이동하고 싶을때는 rclone을 이용하시면 됩니다.
1. rclone 설치
2. 구글드라이브 rclone 리모트 설정
3. 스케줄러 스크립트
sudo rclone move "리모트명:/원본경로" "리모트명:/이동경로" --drive-server-side-across-configs=true --progress --transfers 20 --ignore-existing --delete-empty-src-dirs
import os
import shutil
# 이동할 폴더 경로 지정
destination_folder = "/volume1/music/youtubeDl/"
# 검색할 폴더 경로 리스트 지정
search_folders = ["/volume1/docker/youtubeDl/", "/volume1/download/"]
# 모든 폴더에서 mp3 확장자를 가진 파일 찾기
for search_folder in search_folders:
for filename in os.listdir(search_folder):
if filename.endswith(".mp3"):
file_path = os.path.join(search_folder, filename)
shutil.move(file_path, destination_folder)
대상 폴더 구조가 어떤지 모르겠지만 제가 쓰는 mp3 파일 정리 할 때 사용하는 코드 입니다
.py 파일로 특정 경로에 저장 해두고
작업 스케쥴에
python /volume1/homes/mp3_move_manual.py
특정 시간대에 이렇게 설정 해 두면
특정 시간마다 대상 경로의 폴더 에서 특정 확장자
위의 코드 에서는 mp3 확장자를 찾아서 이동할 폴더로 이동 하는 코드 입니다
자막 파일이면 확장자를 자막 파일 확장자로 바꾸시면 될 거 같습니다
만약 기존 폴더 구조를 그대로 옮겨야 한다면 코드를 수정해야 합니다
위의 코드는 "/volume1/docker/youtubeDl/", "/volume1/download/" 폴더에서
mp3파일을 찾아서 "/volume1/music/youtubeDl/" 폴더로 이동하는 코드 입니다
cmt alert