This blog was badly raped by a spambot on Saturday. Recovery from the problem required restoring from a backup made early that morning. Lost in the restore were two posts and about a dozen comments.
It is possible I may be able to rescue some content by looking directly at an SQL dump, but I can’t guarantee anything. Apologies to anyone who was inconvenienced.
The gods of INTERCAL were taking their revenge on you for bragging about using it as a shield for your user error…
Another TechTip:
If you have a directory you’d like to protect against the Ritual of Desecration (rm -rf *), cast
this Holy Incantation of Fool-Proofing:
echo >./-i ” You dumbass. This is the `pwd` directory you’re trying to delete!”
Then one of the first files the expansion of * turns up is the one named -i, which
supersedes the previously-specified -f *.
Naming a file -f is galactically stupid, except where it’s just plain mean.
Many folks have RSS archives from which posts can be recovered (although I assume that will be the easy part for you to put back up). Just in case.
(Don’t do backups! Put it in an RSS feed and let the world copy it!)
Death to all crackers!
I see ‘4 comments’ below article in main page, but I don’t actually see any comments.
Now I see them, after posting a comment. Probably some refresh…
I would have thought the wayback engine or Google cache should have those posts available. If they don’t now, they will in a few months.
Here’s the two posts, as archived by my RSS feed:
My blog is being raped by a spambot. I first noticed about a half an hour ago that some older posts had become inaccessible through search. Then I actually accessed an old post (“Women With Guns”) twice, a few mnutes apart, and saw that the 8 comments there originally had been replaced by one spam comment.
What’s probably happeniing is some sort of SQL attack on the database behind the blog engine.
I don’t recommend commenting until after we can close the hole and restore from a backup.
Last night I made a classic n00b mistake. I was in a rush to get a test finished because my wife had just gotten home and it was time for us to haul off for the weekly Friday night with the regulars at our friendly local game store. I typed the rm -fr * to clear a scratch directory in the wrong window.
“Huh…” I thought, “that’s taking longer than it should have…” then realized with horror that it was clobbering my home directory and hastily interrupted it. Fortunately, I had a full backup on my laptop. Unfortunately, the full backup was ten days old; I stood to lose a lot of recent email and work.
Instead of gaming, I spent the next couple of hours recovering from this. I pulled the backup onto a scratch directory on my main machine, made file lists of the damaged $HOME and the backup with find(1), diffed them, and braced myself to discover how much I had irretrievably lost.
Nothing, as it turns out. I interrupted the rm -fr as it was still chewing through the alphabetically low directories under $HOME. The big one was dead.projects, my archival graveyard of superannuated stuff. When I killed it, it was busily munching on the huge directory full of tarballs and archives that I pulled together during the great INTERCAL Reconstruction Massacree.
Yes, that’s right. INTERCAL saved my butt, preoccupying the grim reaper rm just long enough…
In the end, no harm done except Cathy and I didn’t get our weekly gaming debauch – I urged her to go without me but she went all wifely and supportive and stuff.
Lessons: Make backups early and often. And instead of throwing old code away, archive it where rm -fr will hit it first – because you never know, someday it might interpose its body between you and the deadliest typo.
Can’t do anything about the comments(not even my snarky “You should have used Windows” one), but hopefully that helps.
Hrm, it doesn’t put multiple line breaks in. Oh well, I’m sure you know where the split point is.
Eep! That is evil. I never thought of the possibility of that kind of capture. I think that’s a good argument for retraining my fingers to add a
--
after the option list whenever I’m using wildcards on the command line.