시놀로지 전체 패키지 볼륨간 한방 이동 스크립트 공유
아래 블로거 분의 스크립트를 조금더 발전 시켜서
한방에 모든 패키지를 이동시키는 스크립트를 만들었습니다.
각 패키지 데몬도 이동전에 안전하게 중지시켰다가 옮기고 다시 재기동 해주도록 했습니다.
root 권한으로 실행하셔야 합니다.
sudo -i
curl -L "https://raw.githubusercontent.com/PeterSuh-Q3/tinycore-redpill/master/mvapp.sh" -O
chmod +x mvapp.sh
./mvapp.sh 1 2
위에 예제는 볼륨1 에서 볼륨2로 이동하는 경우입니다.
볼륨1/@appstore 에 남아 있는 패키지 디렉토리를 스캔하고 순서대로 하나씩 이동시킵니다.
MARIA DB 와 WordPress 는 서로 연관종속관계가 있어서 꼬이는것 같습니다.
이 두 패키지는 미리 지우고 나머지 패키지에만 사용하시기 바랍니다.
node.js 12 / 14 / 16 / 18 등도 볼륨이동후 반드시 수리를 한번 해주셔야 합니다.
그리고, 대부분은 재기동이 되나, 일부 패키지는 이 스크립트로 재기동이 안되는 경우도 있을수 있으니 패키지 관리자에서 모두 정상 시작이 되었는지 한번 점검해 주시기 바랍니다.
공지에 올려놔야겠네요 ㅎ
그래도 많은 분들께 큰 도움 될 것 같습니다. 감사합니다 Q3님!! ㅎㅎㅎ
좋은 자료 감사합니다.
아래 패키지들은 볼륨 이동 시 정상 동작하지 않으니 패키지가 설치된 분들은 참고 부탁 드립니다.
삭제 후 재설치해도 동작하지 않고 원래 볼륨으로 이동 시키면 정상 동작합니다.
Synology Drive 관련 패키지 모두
Video Station
VPN Server
저도 시험해 봤는데 잘 이동이 되는데요?
phpmyadmin 는 PHP 8.0 과 WebStation 이 서로 종속관계에 있어서 같이 이동되야 합니다.
3개 패키지 잘 이동되는군요.
root@VM_FUSION:~# ./mvapp.sh 1 2
Prepare Make Direcrtory for volume2
Stopping Package PHP8.0
{"action":"stop","beta":false,"error":{"code":0},"finished":true,"language":"enu","last_stage":"stopped","package":"PHP8.0","pid":11606,"scripts":[{"code":0,"message":"","type":"stop"},{"code":0,"message":"","type":"stop"}],"stage":"stopped","status":"stop","status_code":324,"status_description":"translate from systemd status","success":true,"username":"","version":"8.0.28-0120"}
Stopping Package phpMyAdmin
{"action":"prepare","error":{"code":0},"stage":"prepare","success":true}
Stopping Package WebStation
{"action":"stop","beta":false,"error":{"code":0},"finished":true,"language":"enu","last_stage":"stopped","package":"WebStation","pid":11930,"scripts":[{"code":0,"message":"","type":"stop"}],"stage":"stopped","status":"stop","status_code":324,"status_description":"translate from systemd status","success":true,"username":"","version":"4.2.1-0492"}
Moving PHP8.0 from volume1 to volume2
=>moving appstore for PHP8.0
=>moving apphome for PHP8.0
=>moving apptemp for PHP8.0
=>moving appdata for PHP8.0
=>moving appconf for PHP8.0
=== Link Before ===
399305 0 lrwxrwxrwx 1 root root 24 Aug 16 11:05 etc -> /volume1/@appconf/PHP8.0
399301 0 lrwxrwxrwx 1 root root 24 Aug 16 11:05 home -> /volume1/@apphome/PHP8.0
399298 0 lrwxrwxrwx 1 root root 25 Aug 16 11:05 target -> /volume1/@appstore/PHP8.0
399300 0 lrwxrwxrwx 1 root root 24 Aug 16 11:05 tmp -> /volume1/@apptemp/PHP8.0
399299 0 lrwxrwxrwx 1 root root 24 Aug 16 11:05 var -> /volume1/@appdata/PHP8.0
Starting Package PHP8.0
{"action":"start","beta":false,"error":{"code":0},"finished":true,"language":"enu","last_stage":"started","package":"PHP8.0","pid":12390,"scripts":[{"code":0,"message":"","type":"start"}],"stage":"started","status":"running","success":true,"username":"","version":"8.0.28-0120"}
=== Link After ===
399015 0 lrwxrwxrwx 1 root root 24 Aug 16 11:07 var -> /volume2/@appdata/PHP8.0
399014 0 lrwxrwxrwx 1 root root 24 Aug 16 11:07 tmp -> /volume2/@apptemp/PHP8.0
398992 0 lrwxrwxrwx 1 root root 25 Aug 16 11:07 target -> /volume2/@appstore/PHP8.0
398987 0 lrwxrwxrwx 1 root root 24 Aug 16 11:07 home -> /volume2/@apphome/PHP8.0
398894 0 lrwxrwxrwx 1 root root 24 Aug 16 11:07 etc -> /volume2/@appconf/PHP8.0
=== Left ===
phpMyAdmin WebStation
=======================================================
Moving phpMyAdmin from volume1 to volume2
=>moving appstore for phpMyAdmin
=>moving apphome for phpMyAdmin
=>moving apptemp for phpMyAdmin
=>moving appdata for phpMyAdmin
=>moving appconf for phpMyAdmin
=== Link Before ===
399406 0 lrwxrwxrwx 1 root root 28 Aug 16 11:05 etc -> /volume1/@appconf/phpMyAdmin
399403 0 lrwxrwxrwx 1 root root 28 Aug 16 11:05 home -> /volume1/@apphome/phpMyAdmin
399400 0 lrwxrwxrwx 1 root root 29 Aug 16 11:05 target -> /volume1/@appstore/phpMyAdmin
399402 0 lrwxrwxrwx 1 root root 28 Aug 16 11:05 tmp -> /volume1/@apptemp/phpMyAdmin
399401 0 lrwxrwxrwx 1 root root 28 Aug 16 11:05 var -> /volume1/@appdata/phpMyAdmin
Starting Package phpMyAdmin
{"action":"start","beta":false,"error":{"code":0},"finished":true,"language":"enu","last_stage":"started","package":"phpMyAdmin","pid":13077,"scripts":[{"code":0,"message":"","type":"start"},{"code":0,"message":"","type":"start"}],"stage":"started","status":"running","success":true,"username":"","version":"5.2.1-1085"}
=== Link After ===
399032 0 lrwxrwxrwx 1 root root 28 Aug 16 11:07 var -> /volume2/@appdata/phpMyAdmin
399029 0 lrwxrwxrwx 1 root root 28 Aug 16 11:07 tmp -> /volume2/@apptemp/phpMyAdmin
399028 0 lrwxrwxrwx 1 root root 29 Aug 16 11:07 target -> /volume2/@appstore/phpMyAdmin
399027 0 lrwxrwxrwx 1 root root 28 Aug 16 11:07 home -> /volume2/@apphome/phpMyAdmin
395392 0 lrwxrwxrwx 1 root root 28 Aug 16 11:07 etc -> /volume2/@appconf/phpMyAdmin
=== Left ===
WebStation
=======================================================
Moving WebStation from volume1 to volume2
=>moving appstore for WebStation
=>moving apphome for WebStation
=>moving apptemp for WebStation
=>moving appdata for WebStation
=>moving appconf for WebStation
=== Link Before ===
399243 0 lrwxrwxrwx 1 root root 28 Aug 16 11:05 etc -> /volume1/@appconf/WebStation
399239 0 lrwxrwxrwx 1 root root 28 Aug 16 11:05 home -> /volume1/@apphome/WebStation
399234 0 lrwxrwxrwx 1 root root 29 Aug 16 11:05 target -> /volume1/@appstore/WebStation
399238 0 lrwxrwxrwx 1 root root 28 Aug 16 11:05 tmp -> /volume1/@apptemp/WebStation
399237 0 lrwxrwxrwx 1 root root 28 Aug 16 11:05 var -> /volume1/@appdata/WebStation
Starting Package WebStation
{"action":"prepare","error":{"code":0},"stage":"prepare","success":true}
=== Link After ===
399237 0 lrwxrwxrwx 1 root root 28 Aug 16 11:07 var -> /volume2/@appdata/WebStation
399238 0 lrwxrwxrwx 1 root root 28 Aug 16 11:07 tmp -> /volume2/@apptemp/WebStation
399234 0 lrwxrwxrwx 1 root root 29 Aug 16 11:07 target -> /volume2/@appstore/WebStation
399239 0 lrwxrwxrwx 1 root root 28 Aug 16 11:07 home -> /volume2/@apphome/WebStation
399243 0 lrwxrwxrwx 1 root root 28 Aug 16 11:07 etc -> /volume2/@appconf/WebStation
=== Left ===
=======================================================
=== DONE ===
볼륨1에서 볼륨2로 이동된것 확인한 캡쳐입니다.
담에 시간날때 리트라이 해봐야겠네용
Synology Office 수리 했으나 Synology Drive 관리 콘솔이 실행되지 않아 수리가 불가능합니다. Synology Drive 관리 콘솔은 실행 중으로 되어있으나 제대로 작동하지 않았습니다. [패키지 센터 > Synology Drive Server로 이동하고 동작 > 실행을 클릭하십시오.] 라고만 뜨네요. 따라서 재부팅했으나 수리 불가능하여 Synology Drive, Office 둘다 재설치했으나 정상적으로 설치가 안되는 상황입니다.
또한 Antivirus Essential은 정상적으로 옮겨졌으나 실행이 안됩니다. 실행하는 순간 종료되며 [네트워크 연결이 불안정하거나 시스템이 사용중이므로 이 작업을 수행할 수 없습니다. 나중에 다시 시도하십시오.] 라는 오류가 나오며 정상 작동하지 않습니다.
이래저래 고쳐보다가 Synology Drive에 있는 파일 버저닝거 전부 날아갔습니다. 크게 중요한건 아니라 날아가도 상관은 없는데 이래저래 머리 아팠습니다. 지원 티켓 끊으려다 말았어요. 다른분들 사용하실 때 주의하시라고 댓글 남겨놓습니다.
대충 상황은 이렇습니다. 볼륨 4번에 있는 패키지들을 볼륨 11번에 옮기려고 했으며 Synology Drive의 데이터베이스가 볼륨 11에 저장되어있었습니다. 이에 관해서 볼륨 11번에 패키지와 데이터베이스가 같이 존재하는 상황에서 충돌이 발생한 것으로 추측됩니다. 이제는 Synology Drive는 볼륨 4에 설치하니 정상작동합니다. Office는.. 아직 해보지는 않았습니다.
아마 볼륨 11로 옮겨진 Synology Drive를 볼륨 4번으로 다시 옮기고 볼륨 11번에 있는 데이터베이스를 다른 볼륨(4번 외의)으로 옮긴 후 다시 패키지를 11번으로 옮기고 데이터베이스를 볼륨 11번으로 옮겼으면 괜찮았을까 싶긴한데 이미 지워져서 다시 해볼 수는 없네요.
Synology Drive의 데이터베이스가 정리되어서 그런건지 재부팅을 여러번하거나 패키지 삭제/설치를 여러번해서 그런지는 모르겠으나 Antivirus Essential도 볼륨 4에 설치하니 고쳐진 듯 합니다. 삭제하고 볼륨 11에 다시 설치해봐야겟습니다.
작동에는 크게 문제가 없지만 기존 데이터가 필요하신 분은 주의가 필요할 것 같습니다.
cmt alert