Nextcloud手动迁移文件后通过扫描命令将文件扫描入库

字号+ 编辑: 种花家 修订: 种花家 来源: 原创 2023-09-11 我要说两句(1)

自述如何最快把服务器已经存好的本机文件迁移到nextcloud当中

对小编来说, 存储服务器通过一番折腾,已经搞到不得不上Next Cloud的地步。本来服务器里面已经有了一堆文件, 如果无脑把文件拷贝出来, 再网页里传进去, 显然out了。

怎么用shell命令用最快时间把文件传进去呢?

4f50286592d5ebb160ad307e35e773d0.jpg

首先要确定next cloud用户放置的路径, 本篇就拿/mnt/pool/nextcloud/data/user1/files举例, 小编使用了docker快速创建了一个next cloud应用, 新建的用户user1, 会把实际的文件放到这个路径里。

接下来开始正式操作,用mv迁移文件, 因为迁移的时间一般比较长, 直接nohup挂着, 避免中断

nohup mv /源数据文件夹路径/* /mnt/pool/nextcloud/data/user1/files/ 2>&1 &

注意,迁移文件的时候无论如何不要无聊写/dev/null的字样在里面,和rm -rf /*是几乎一样的效果,多一行命令把日志删了而已,难不成你工作不想要了?小编这是血的教训啊……

跑完了之后, 记得改一下迁移后的文件权限:

cd /mnt/pool/nextcloud/data
chmod -R 770 files && chown -R www-data:www-data files

小编这里有一个特殊需求, 要同时在服务器里开一个SMB只读共享服务和网盘的服务打通, 为了避免ACL报错, 所以命令和以上不太一样, 长成这样

chmod -R 771 files && chown -R www-data:www-data files && chmod 771 /mnt/pool/nextcloud/data

这样一来, 文件的权限梳理干净了。就可以运行扫描了, 这里小编要运行nextcloud docker下的/var/www/html目录用php执行一个occ命令, 命令如下

cd /var/www/html
sudo -u www-data php occ files:scan user1

意思就是让nextcloud给user1扫一下未从网页口径进来的文件入个库记个账。

搜老外网站发现老外在问这种命令:

sudo -u www-data php occ files:scan --unscanned --all

里面多了一个--unscanned参数, 可以节省很多扫描时间, 可惜官方没实现, 跑不通, 用了之后新扫描所得文件数始终等于0。于是改了一下,方法变为:

sudo -u www-data php occ files:scan --path=用户名/files/xxx

没错, 把--unscanned这个参数干掉了, 用--path来指定确切位置。这个path参数的用法说明一下:

--path=<用户名>/<用户目录下的路径, 一般以files/开头>

手动迁移组文件夹的方法

因为组文件夹一直是一个插件的概念出现,官方文档上没有专门写出来如何应用这个插件。很遗憾。搜到github有这么一条命令

sudo -u www-data php occ groupfolders:scan 1

最后边的数组就是你用户组的ID号码。注意,当迁移完成后,需要使用以下命令来刷新权限:

chown -R www-data:www-data /mnt/pool/nextcloud/data/__groupfolders/1

Docker无法输入中文的临时解决

因为next cloud官方那个docker没法输入中文。最快的方法是通过宿主命令挂进去,或者发个curl指令来执行。例如, 在宿主机上运行

docker exec nextcloud容器名字或者ID bash -c "sudo -u www-data php -f occ files:scan --path=public/files/我的红白机存档/"

即可解决

另外一种方式就是在当前你的终端下用ls命令把文件列举出来, 再用粘贴复制的方式去解决。如果文件名左右两侧发现有单引号, 不要复制单引号。

阅完此文,您的感想如何?
  • 有用

    3

  • 没用

    1

  • 开心

    2

  • 愤怒

    1

  • 可怜

    1

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.Q群: 2702237 13835667

相关课文
  • 防止退出linux终端退出之后导致的nohup进程强制退出

  • Linux系统下word文档转成pdf的办法

  • ubuntu和debian安装nginx或者tengine报错, 找不到pcre依赖库的解决办法

  • linux终端下借助awk命令查询筛出网站access.log日志里的统计信息

我要说说
网上嘉宾点评
1 楼 IP 114.254.***.129 的嘉宾 说道 : 很久前
我迁移的时候就搞错了符号.,迁移到/dev/null里去了.....血的教训啊楼主