№ 2091 В разделах: Programming
Sysadmin
от April 29th, 2010,
В подшивках: Wordpress
После многолетнего срача на моем маленьком хостинге блогов я все-таки решился написать программу, которая удаляет дохлые блоги, но оставляет зарегистрированных пользователей. Программа написана на Ruby с применением gem mysql.
#!/usr/bin/ruby -w
require "rubygems"
require "mysql"
connection = Mysql.connect "database.host", "login", "passwd", "database_name"
queryres = connection.query "SELECT blog_id,path FROM `wp_blogs` where
last_updated < '2010-04-23'"
puts "#{queryres.count} мертвых блога"
while blog = queryres.fetch_row do
querystr = "SELECT option_value FROM `wp_#{blog[0]}_options` where
option_name='post_count'"
queryres2 = connection.query querystr
while option_value = queryres2.fetch_row do
if "#{option_value}".to_i < 3
puts "Блог #{blog[1]} (#{blog[0]}) имеет #{option_value} записей - удален"
connection.query "delete from wp_blogs where blog_id=#{blog[0]}"
connection.query "drop table wp_#{blog[0]}_comments, wp_#{blog[0]}_links,
wp_#{blog[0]}_options, wp_#{blog[0]}_postmeta, wp_#{blog[0]}_posts,
wp_#{blog[0]}_terms, wp_#{blog[0]}_term_relationships, wp_#{blog[0]}_term_taxonomy;"
else
puts "Блог #{blog[1]} (#{blog[0]}) имеет #{option_value} записей - пропущен"
end
end
end
connection.close if connection
Получаем все блоги с последними записями до указанного числа. и если их меньше 3, то удаляем записи о их существовании и дропаем таблицы блогов. Дату можно сделать вычисляемой и вставлять в запрос прямо во время работы программы. Я уверен, что вы сделаете это сами, если понадобится. Впрочем, за небольшую плату мы можем договориться об установке и настройки под ваши нужны 😉
Fortune cookie: This MUST be a good party -- My RIB CAGE is being painfully pressed up against someone's MARTINI!!
Leave a Reply