- Xu
- 1,706
Cách này dành cho bạn nào cần empty avatar + profile ở những diễn đàn có nhiều user rác, muốn xóa bớt để backup code cho nhẹ hơn có thể áp dụng.
XenForo lưu avatar trong data/avatars và profile banner trong data/profile_banners.
Trước tiên lấy tên database:
Nhớ thay /home/domain.com/public bằng đúng đường dẫn của bạn.
Backup database trước:
Sau đó reset thông tin avatar:
Tiếp theo reset toàn bộ profile banner:
Đây cũng là các trường XenForo sử dụng để xác định profile banner; cách reset banner_date, banner_position_y và banner_optimized đã được đối chiếu với service của XenForo.
Bây giờ xóa file avatar nhưng giữ lại cấu trúc thư mục chính:
Xóa profile banner:
Kiểm tra:
Hai dòng cuối phải ra:
Sau đó restart PHP:
Không cần xóa internal_data, code_cache hay template gì cả.
Lưu ý:
Cách này xóa avatar/profile banner của tất cả user, kể cả admin. Avatar XenForo thực tế nằm ngoài database; DB chỉ giữ metadata như avatar_date, kích thước, còn file nằm trong data/avatars.
XenForo lưu avatar trong data/avatars và profile banner trong data/profile_banners.
Trước tiên lấy tên database:
Nhớ thay /home/domain.com/public bằng đúng đường dẫn của bạn.
Mã:
DB=$(php -r 'require "/home/domain.com/public/src/config.php"; echo $config["db"]["dbname"];')
echo "$DB"
Backup database trước:
Mã:
mysqldump "$DB" | gzip > /root/before-delete-avatars.sql.gz
Sau đó reset thông tin avatar:
Mã:
mysql "$DB" -e "
UPDATE xf_user
SET avatar_date = 0,
avatar_width = 0,
avatar_height = 0,
avatar_highdpi = 0,
gravatar = '';
UPDATE xf_user_profile
SET avatar_crop_x = 0,
avatar_crop_y = 0;
"
Tiếp theo reset toàn bộ profile banner:
Mã:
mysql "$DB" -e "
UPDATE xf_user_profile
SET banner_date = 0,
banner_position_y = NULL,
banner_optimized = 0;
"
Đây cũng là các trường XenForo sử dụng để xác định profile banner; cách reset banner_date, banner_position_y và banner_optimized đã được đối chiếu với service của XenForo.
Bây giờ xóa file avatar nhưng giữ lại cấu trúc thư mục chính:
Mã:
cd /home/domain.com/public
find data/avatars -type f -delete
find data/avatars -mindepth 2 -type d -empty -delete
Xóa profile banner:
Mã:
find data/profile_banners -type f -delete
find data/profile_banners -mindepth 2 -type d -empty -delete
Kiểm tra:
Mã:
du -sh data/avatars
du -sh data/profile_banners
find data/avatars -type f | wc -l
find data/profile_banners -type f | wc -l
Hai dòng cuối phải ra:
Mã:
0
0
Sau đó restart PHP:
Mã:
systemctl restart php8.3-fpm
Không cần xóa internal_data, code_cache hay template gì cả.
Lưu ý:
Cách này xóa avatar/profile banner của tất cả user, kể cả admin. Avatar XenForo thực tế nằm ngoài database; DB chỉ giữ metadata như avatar_date, kích thước, còn file nằm trong data/avatars.
Last edited by a moderator: