由于使用NextCloud的上傳太慢了,我直接將文件移動(dòng)至nextcloud的文件目錄
/data/用戶名/files
中,結(jié)果nextcloud并不能顯示出來(lái)手動(dòng)拷貝的文件,本文詳細(xì)說(shuō)明了docker版本的nextcloud如何手動(dòng)掃描文件。
#!/bin/bashdocker run -d -v /home/docker/nextcloud/data:/var/www/html/data -v /home/movies:/var/www/html/data/用戶名/files/Movies -v /home/docker/nextcloud/custom-apps:/var/www/html/custom_apps -v /home/docker/nextcloud/config:/var/www/html/config -v /home/docker/nextcloud/config/passwd:/etc/passwd -p 80:80 --link mysql:mysql --name nextcloud --restart=always helsing/nextcloud
注意:
這里的passwd文件要映射出來(lái),因?yàn)楣俜絛ocker鏡像里,www-data用戶是禁止使用bash的,需要手動(dòng)修改一下:
vi passwd
修改www-data用戶的nologin為/bin/bash
www-data:x:33:33:www-data:/var/www:/bin/bash
進(jìn)入容器內(nèi)
docker exec -it nextcloud /bin/bash
手動(dòng)掃描文件
su - www-data -c 'php /var/www/html/occ files:scan --all'
一般默認(rèn)安裝occ都在我上邊寫的那個(gè)路徑下,如果沒(méi)有,請(qǐng)自行搜索位置
正常返回結(jié)果
Starting scan for user 1 out of 1 (xxx)+---------+-------+--------------+| Folders | Files | Elapsed time |+---------+-------+--------------+| 70 | 8320 | 00:03:10 |+---------+-------+--------------+
可以看到,用時(shí)還是比較長(zhǎng)的,所以可以自行添加一些參數(shù),比如指定掃描用戶、目錄、只掃描未掃描過(guò)的文件等。
occ掃描參數(shù)說(shuō)明
格式: files:scan [-p|--path="..."] [-q|--quiet] [-v|vv|vvv --verbose] [--all] [user_id1] ... [user_idN]參數(shù): user_id #掃描所指定的用戶(一個(gè)或多個(gè),多個(gè)用戶ID之間要使用空格分開)的所有文件選項(xiàng): --path #限制掃描路徑,該路徑必須包含以下部分:"user_id/files/path"--all #掃描所有已知用戶的所有文件 --quiet #不輸出統(tǒng)計(jì)信息 --verbose #在掃描過(guò)程中顯示正在處理的文件和目錄 --unscanned #僅掃描以前未掃描過(guò)的文件
其他可能用到的
php occ user:list #列出所有用戶
容器外執(zhí)行occ的腳本scanFiles.sh
內(nèi)容
#/bin/bash#可以根據(jù)自己的需求更改參數(shù),比如指定掃描路徑,只掃描未掃描過(guò)的文件等,參見第二節(jié)的參數(shù)說(shuō)明docker exec -it nextcloud /bin/bash -c "su - www-data -c 'php /var/www/html/occ files:scan --all'"
增加執(zhí)行權(quán)限
chmod +x scanFiles.sh
./scanFiles.sh
crontab -e
按i進(jìn)入編輯模式,插入如下記錄
#每天凌晨2點(diǎn)定時(shí)occ掃描nextcloud文件更新0 2 * * * sh /home/shells/scanFiles.sh
聯(lián)系客服