synology:插件整体迁移脚本
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| synology:插件整体迁移脚本 [2020/10/31 10:02] – 创建 packingbox | synology:插件整体迁移脚本 [2025/12/27 16:45] (当前版本) – packingbox | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ===== 插件和系统数据库整体迁移到新的存储空间 ===== | ||
| + | |||
| + | 有时需要更换硬盘,首先建立不同的存储空间,然后把插件和系统数据迁移过去,在删除原有的存储空间,关机拔掉硬盘。 | ||
| + | |||
| + | 下面就是一次性整体迁移的脚本。 | ||
| + | |||
| + | <code bash move_syno_pkgs.sh> | ||
| + | #!/bin/bash | ||
| + | SOURCE=/ | ||
| + | DEST=/ | ||
| + | |||
| + | APPDIR=\@appstore | ||
| + | |||
| + | ASK=true | ||
| + | |||
| + | while getopts ": | ||
| + | case $opt in | ||
| + | y) | ||
| + | ASK=false | ||
| + | ;; | ||
| + | \?) | ||
| + | echo " | ||
| + | exit 1 | ||
| + | ;; | ||
| + | esac | ||
| + | done | ||
| + | |||
| + | echo "This will move packages from $SOURCE to $DEST" | ||
| + | echo "" | ||
| + | |||
| + | if [ ! -d $DEST/ | ||
| + | mkdir $DEST/ | ||
| + | chmod 777 $DEST/ | ||
| + | echo "New app directory created" | ||
| + | fi | ||
| + | |||
| + | echo " | ||
| + | |||
| + | for d in / | ||
| + | do | ||
| + | [ -d " | ||
| + | app=$(basename $d) | ||
| + | symlink=$d/ | ||
| + | |||
| + | if [ ! -e " | ||
| + | echo "$app has no symlink" | ||
| + | continue | ||
| + | fi | ||
| + | |||
| + | if [ ! -e " | ||
| + | echo "$app is not in source directory" | ||
| + | continue | ||
| + | fi | ||
| + | |||
| + | if [ ! " | ||
| + | echo "$app: Symlink doesn' | ||
| + | continue | ||
| + | fi | ||
| + | |||
| + | echo "Found $app" | ||
| + | |||
| + | file_warnings=$(find $d -type f -exec grep -l " | ||
| + | if [ ! -z $file_warnings ]; then | ||
| + | echo "Be careful!" | ||
| + | echo "The following files contain ' | ||
| + | echo " | ||
| + | fi | ||
| + | |||
| + | if $ASK; then | ||
| + | read -s -p "`echo $' | ||
| + | [[ $REPLY =~ ^[Yy]$ ]] || continue | ||
| + | echo "" | ||
| + | fi | ||
| + | |||
| + | echo "`echo $' | ||
| + | synopkgctl stop $app | ||
| + | cp -rp $SOURCE/ | ||
| + | rm -f $symlink | ||
| + | ln -s $DEST/ | ||
| + | mv $SOURCE/ | ||
| + | synopkgctl start $app | ||
| + | echo "`echo $' | ||
| + | echo "" | ||
| + | done | ||
| + | |||
| + | echo "Done for all." | ||
| + | echo "" | ||
| + | |||
| + | echo "If you want to remove $SOURCE you should also move the following:" | ||
| + | echo "" | ||
| + | |||
| + | for f in / | ||
| + | do | ||
| + | [ -L $f ] || continue | ||
| + | target=$(readlink $f) | ||
| + | if echo " | ||
| + | echo " | ||
| + | fi | ||
| + | done | ||
| + | </ | ||
| + | |||
| + | | ||
| + | |||
synology/插件整体迁移脚本.txt · 最后更改: 由 packingbox
