xebiyen
(xebiyen521)
12월 7, 2022, 2:25오전
1
안녕하세요!
포럼을 만들 당시 서버 용량이 가득 차는 것에 대해 고려하지 않았습니다. 자동으로 정리될 줄 알았고, 저작권 문제나 정의(Justice) 관련 문제 등도 몰랐습니다. 심지어 포럼 사용자가 서버에 이미지를 업로드하지 못하도록 막는 정보조차 찾지 않았죠!
결국 지금은 여러 문제를 겪고 있습니다. 서버 용량 부족, 타인의 이미지를 권리 없이 노출하는 것에 대한 공정성 문제, 저작권 문제 등이 있네요.
모든 것, 즉 모든 주제, 업로드된 모든 이미지, 멤버 아바타 이미지, 모든 파일 등을 삭제하고 포럼을 실행하기 위한 discourse 파일과 사용자만 남기고 싶습니다.
이것이 가능한가요? 무엇을 삭제할 수 있고, 무엇을 삭제할 수 없는가요?
어떤 명령어를 사용해야 하나요?
df -h 명령어를 입력하면 다음과 같은 내용이 표시됩니다.
dev/vda1에는 무엇이 있나요? 38g가 사용 중이라고 보였는데, 구체적으로 무엇의 38g인가요?
overlay도 38g입니다. 그 폴더에는 무엇이 있나요?
무엇을 삭제할 수 있으며 어떻게 삭제하나요? 프롬프트를 통해 명령어를 사용할 수 있나요?
안녕하세요, @xebiyen
이 분야는 제 전문 분야가 아니지만, 사용자를 새 설치 환경으로 내보내기/마이그레이팅하는 것이 또 다른 접근 방법이 될 수 있지 않을까 싶어서요?
pfaffman
(Jay Pfaffman)
12월 7, 2022, 12:32오후
3
20GB의 여유 공간이 있습니다. 사용자 게시물을 삭제하면 몇백 MB 정도가 확보될 수 있지만, 큰 차이는 없을 것입니다.
./launcher cleanup
명령을 실행하면 몇 GB를 확보할 수 있을 것입니다.
저작권 문제가 있다면 직접 해결해야 합니다. 그렇지 않으면 다시 같은 문제가 발생할 것입니다.
/dev/vda는 전체 드라이브입니다. 다음을 실행할 수 있습니다.
du -hs /var/discourse/shared/standalone/*
이를 통해 discourse가 얼마나 많은 공간을 사용하고 있는지 확인할 수 있습니다.
Stephen
(Stephen)
12월 7, 2022, 4:07오후
4
폴더가 아니라 overlayFS 스토리지 드라이버입니다. 숫자는 /dev/vda1과 동일합니다.
무시해도 안전합니다.
xebiyen
(xebiyen521)
12월 7, 2022, 4:47오후
5
어떻게 진행되나요? 이 경우 사이트는 새로 만들어지고, 기존 사용자는 계속 유지되는 건가요?
xebiyen
(xebiyen521)
12월 7, 2022, 4:48오후
6
조금만 지워지는 거라고 알지만 꼭 필요합니다! 내 포럼의 모든 것을 초기화하고 싶어요. 그리고 그런 일은 다시 일어나지 않을 거예요. 아무도 미디어에 아무것도 올리지 못하도록 설정할 테니까요.
Stephen
(Stephen)
12월 7, 2022, 4:53오후
7
게시물, 좋아요 등 관련 배지를 잃게 된다면 사용자들은 어떻게 느낄 것 같으신가요? 모든 콘텐츠를 삭제하는 것은 기술적으로도 위험할 뿐만 아니라, 사용자들을 소외시킬 가능성이 있습니다.
현재 사이트는 사용자 수, 카테고리, 게시물 수 기준으로 얼마나 큰 규모인가요?
이 방향으로 굳이 진행하시겠다면, 현재 카테고리의 권한을 스태프 전용으로 변경하여 숨기고, 게시를 위한 새로운 공개 카테고리를 만드는 방안을 고려해 보시기 바랍니다.
xebiyen
(xebiyen521)
12월 7, 2022, 9:59오후
8
이것은 문제가 되지 않을 것입니다. 제 사용자들은 이에 대해 신경 쓰지 않고, 사용자 수도 적기 때문입니다.
새로운 설치 환경을 만들면서 기존 사용자를 유지하는 방법에 관심이 있습니다. 어떻게 해야 하는지 아시나요?
Stephen
(Stephen)
12월 7, 2022, 10:02오후
9
데이터베이스를 수정하려는 대신, 현재 게시글에 대한 접근 권한을 제한하는 것이 왜 불가능합니까?
작은 사이트라면, UI에서 대량 선택 후 주제를 삭제하는 것은 어떨까요?
xebiyen
(xebiyen521)
12월 7, 2022, 11:13오후
10
제가 말씀드린 것 외에도, 이 포럼은 다른 소유자의 것이었기 때문에, 제 입장에서는 사용자는 유지하면서 처음부터 재설치를 하는 것이 더 나을 것 같은데, 어떻게 해야 하나요?
이주(migration) 관련 기술은 전혀 없어서, 제가 제안은 했지만 어떻게 해야 하는지는 아쉽게도 잘 모르겠습니다. 다른 누군가가 나서서 적어도 이것이 가능한지 확인해 주길 바랐는데, 혹시 아는 분 계신가요?
Canapin
(Coin-coin le Canapin)
12월 7, 2022, 11:33오후
12
사용자가 몇 명이나 있나요?
처음부터 다시 시작해야 한다면, 대안으로 data explorer 를 사용하여 사용자의 이메일 주소를 CSV 파일로 내보내고, 포럼을 다시 만든 후 해당 CSV 파일을 통해 사용자를 일괄 초대하는 방법을 사용할 수 있습니다.
또 다른 아이디어도 있습니다. 더 어렵고, 제 생각에는 작동하지 않을 수도 있어서 확신은 없습니다.
data-explorer를 사용하여 유지하고 싶은 사용자 데이터를 모두 내보냅니다(아바타는 유지하고 싶지 않으므로, 다른 정보도 건너뛸 수 있습니다) 그리고 결과를 파일로 내보냅니다.
그 후, 새 포럼을 설치한 뒤 파일을 파싱하여 데이터베이스에 사용자 항목(옵션, 이메일 등)을 생성하는 rails 스크립트를 작성합니다.
rails 콘솔에서 사용자를 생성하는 예시는 다음과 같습니다:
I do have a question about email notifications using this method.
I have added users through the console using the following commands:
u = User.create!(username: ‘xx’, email: ‘xx@xx.com’, password: ‘xxx’, mailing_list_mode: ‘true’);u.approve(Discourse.system_user, false) ; u.activate
I have enabled “Send all new users a welcome message with a quick start guide” in http://forum.brickfield.org.uk/admin/site_settings/category/uncategorized
However, emails are not being sent to users being add…
여기서 찾은 또 다른 스크립트입니다: https://meta.discourse.org/t/import-users-from-csv/79203:
import_users_from_csv.rb
require 'csv'
namespace :user_importer do
desc "Import users from a CSV file"
task :import, [:csv_file] => [:environment] do |_, args|
abort "Please specify the CSV file to import" if args[:csv_file].blank?
CSV.foreach(args[:csv_file], col_sep: ';', headers: true) do |new_user|
user = User.find_by_email(new_user['email'])
if user
This file has been truncated. show original
이 스크립트는 특정 시점에서 작동하지 않습니다(그래서 Support 카테고리에 있는 것입니다 ), 하지만 여전히 흥미로운 정보를 포함하고 있을 수 있습니다.
xebiyen
(xebiyen521)
12월 8, 2022, 12:09오전
13
아 네, 그걸 이야기할 때 정확하고 더 쉽다고 생각했거든요. 그래서 결국 제 첫 번째 옵션으로 돌아가야 할 것 같습니다: 서버에서 내용을 삭제하는 거요! 서버에서 내용을 삭제할 때 어떤 명령어를 사용해야 하는지 알고 계신가요? 그리고 어떤 폴더를 삭제할 수 있나요? 미디어부터 토픽까지 전부 삭제하고 싶어요. 같은 사용자만 유지할 뿐, 포럼의 스타일조차 유지하고 싶지 않아요. 정말로 포럼을 초기화하고 싶습니다.
/admin/users/list/active 페이지의 ‘내보내기’ 버튼을 사용하여 사용자 목록을 가져오는 것을 고려하고 있었습니다. 그런 다음 csv에서 필요 없는 몇 가지 열을 제거하고, 그 다음 그것을 ‘어떤 식으로든’ 가져오는 것입니다.
xebiyen
(xebiyen521)
12월 8, 2022, 12:57오전
16
저는 그 부분에 대해 디스코스를 많이 사용해 본 경험이 없습니다. 서버에서 내용을 삭제하려고 하는데, 디스코스 미디어(프로필 사진, 배경 사진, 주제, 채팅 메시지, 일반 메시지 등) 전체를 저장하는 폴더(만약 존재한다면)를 삭제하는 명령어는 무엇인가요?
Canapin
(Coin-coin le Canapin)
12월 8, 2022, 1:10오전
17
사용자를 내보낸 뒤 Discourse를 처음부터 재설치하고, 그 다음 사용자를 “어떤 식으로든” 가져오는 것보다 더 쉬운 방법이 있다고 생각하지 않습니다
사용자 데이터 중 어떤 부분을 유지하고 싶으며, 현재 사용자 수는 몇 명인가요? 더 구체적으로 알려주시면, 문제를 해결하기 위한 정확한 답변을 받을 가능성이 높아집니다.
xebiyen
(xebiyen521)
12월 8, 2022, 2:48오전
18
Coin-coin le Canapin:
사용자를 내보내고 Discourse를 처음부터 재설치한 다음, 사용자를 “어떤 식으로든” 가져오는 것보다 더 쉬운 방법이 있을 것 같지 않습니다.
사용자 데이터 중 어떤 것을 유지하고 싶으며, 사용자는 몇 명이나 되나요? 질문이 càng 구체적일수록 문제를 해결하기 위한 정확한 답변을 받을 가능성이 높아집니다.
구글 번역기를 사용 중인데, 번역이 정확했는지 모르겠습니다. 제가 이해한 바로는, 그 사람들이 포럼으로 돌아오지 않는다는 것인데, 그렇다면 초대되는 건가요? 저는 기존과 똑같이 유지하고 싶고, 초대는 원하지 않습니다. 번역을 정확히 이해하지 못했는데, 이 방식의 차이가 중요한가요?
xebiyen
(xebiyen521)
12월 8, 2022, 2:51오전
20
하지만 동일한 사용자와 비밀번호를 사용할 수 있도록 가져온 것일까요, 아니면 새로 가입하도록 초대할까요?