Backup your server to a Google Cloud Storage Bucket

Hey Everyone,
Hope this is helpful to someone. My Plesk server runs on Google Compute Engine, and backups to a Google Cloud Storage Bucket via this script:

#!/bin/bash
export BOTO_CONFIG="/path/to/.boto"

# Create the backups appending YYMMDD to the end of the file name.
mysqldump databasename -u username -ppassword > database_$(date +%y%m%d).sql
tar -czf httpdocs_$(date +%y%m%d).tar.gz /var/www/vhosts/example.com/httpdocs/

# Compress the database backup.
gzip database_$(date +%y%m%d).sql

# Upload the backups to your bucket, and pipe output to null to prevent cron from emailing you several pages of output.
gsutil cp -L databasereport.txt database_$(date +%y%m%d).sql.gz gs://bucketname 2>/dev/null
gsutil cp -L httpdocsreport.txt httpdocs_$(date +%y%m%d).tar.gz gs://bucketname 2>/dev/null

# Remove the backups from the server.
rm httpdocs_$(date +%y%m%d).tar.gz
rm database_$(date +%y%m%d).sql.gz

# The output reports are .csv, so I would cut them to get the file name and status.
# Output the status of the upload reports for Cron to email (if you want).
cut --delimiter=, -f1,9 databasereport.txt
cut --delimiter=, -f1,9 httpdocsreport.txt

# Remove the upload reports.
rm databasereport.txt
rm httpdocsreport.txt

Ford’s Warranty is a joke. Your claim has been denied.

So here’s my story:

I have a 2007 V6 Ford Mustang that I purchased new in 2007. It currently has 36,200 miles on it. The drivetrain is under warranty for 5 years or 60,000 miles.

I’m driving home around 1am Friday morning when my car breaks down. I immediately know from the sound it’s either the transmission or differential that has gone. A great friend of mine, who I now owe a huge favor, drove an hour to come get me and take me home. I call Ford Roadside Assistance around 11am Friday to have it towed. Ford sends a tow truck and takes it to the closest Ford dealer. (Warning #1)

The car is dropped off at Northgate Lincoln Mercury in Tampa, FL. I notice they have NO Ford brand vehicles, just Lincoln and Mercury. (Warning #2) They say they’ll try to get to it as soon as possible and give me a call once they know something. In the mean time, I’m renting a car from the enterprise office they have on-site for $50 a day. This is just to be able to get to college and back. (Day number 6 and counting)

I get a call at 5PM Friday night, saying it’s the differential and a “engineer/specialist” will have to look at it on Monday, fair enough.

I get a call Monday morning, the “specialist” is out of town and will get to it tomorrow. (Warning #3)

I get a call Tuesday morning…the service manager (Chris Haggstrom) and the “Ford Field Service Engineer” have decided that my warranty claim has been DENIED. They state that “THIS VEHICLE HAS BEEN DRIVEN BEYOND ITS NORMAL DESIGN LIMITS.” (I would absolutely LOVE to know what Ford defines as “normal design limits”.) I had just woken up and couldn’t fully comprehend what was happening. I was speechless, the only response I could manage at the time was “Seriously?”. Chris said he would have one of his advisers call me with a quote for the repair. I asked Chris for the phone number for Ford’s Warranty Claims department, which I proceeded to call to find out how to appeal this decision. I was told: “the decision can’t be appealed but financial assistance can sometimes be provided”. I’m stunned that I’m totally helpless in this situation.

At this point, I get my father involved. He was the one who actually purchased the car, although the title is in my name. He contacts various people at Ford, as well as the service manager at the dealer, however, we’re still in square one.

The dealer wants $2,600 to repair the differential, which is absolutely ridiculous. I can order an entire rear end axle assembly with a differential online for ~$800. I don’t know about you, but I don’t have $2600 lying around to pay for something that shouldn’t cost me anything.

At this point, my only real option is to pay for this out of pocket and then sue Ford for reimbursement. However, I’m not giving Northgate Lincoln Mercury a penny. I’ll be ordering a new rear assembly online and having it shipped to a local shop that can swap it out.

Update 11/23: Since my VIN number was banned from any drivetrain warranty repairs at any Ford dealer, I didn’t have a whole lot of options. I paid out of pocket to have the vehicle towed to my local (excellent) Ford dealer (Walker Ford) and also paid out of pocket for a new rear end from newtakeoff.com, it was delivered to Walker Ford who installed it had it ready to go the same day.

I’ll now be seeking $2,133 in reimbursement from Ford. This is the exact cost of my rental car, new rear end, towing, labor, and the $109 I had to pay Northgate Lincoln Mercury for looking at my car.

I guess my point is this: If your Ford vehicle is under warranty, it’s as good as being out of warranty. Ford and/or your dealer can claim your vehicle is (insert generic clause here) and deny your warranty claim. Ford doesn’t honor their warranty or stand by their products, and the dealers (especially Northgate Lincoln Mercury which has fought me tooth and nail) don’t have any motivation to actually fix a problem unless they get money in their pocket.

So if you find yourself in the unfortunate situation of needing warranty service on your Ford and happen to live in the Tampa Bay Area, be sure to stay away from Northgate Lincoln Mercury. Even if you have to pay for a towtruck yourself, it’s a fraction of what it will cost you if they deny your claim.

The Consumerist has picked up my story! http://consumerist.com/2010/11/ford-denies-my-warranty-coverage-due-to-vague-design-limits-reason.html

Documents from Ford:

For those of you thinking this is a “one in a million” occurance, take a look at the Google results for “Ford Warranty Denied”.

My PayPal horror story, and why I’m never using them again.

It all begins with me setting up a business paypal account.
I COULD have used my personal account that was established when paypal launched, but I decided that a dedicated business account would be a better choice.

So, I set it up, gave them all the information they requested, and I was up and running.
I get a “account is limited” email a few days later, they want some more information, a credit card number, basic stuff, which I’m happy to provide. Upon doing so I’m back and “unlimited”. Everything seemed fine.

Fast forward exactly 2 weeks, I get an email like before saying my account is locked. This time they want very specific information; proof of my SSN/birthdate, proof that I was actually shipping products, invoices, and my supplier’s information.
I’m a bit confused, but agree to send them all the information they requested. A scan of my SSN, a screenshot of my stamps.com account showing that the orders were shipped, PDF’s of invoices, and a PDF with orders for 5 sets of materials.

The proof of shipping was almost immediately acknowledged and checked off the list, as was my birthdate.
However, my SSN, invoices, and supplier information sat as “In Progress” for a while. I called and asked how long it normally takes and was told 24-72 hours. Ok, I can live with that, I could still accept orders, I was just prohibited from withdrawing money.

About 5 hours go by, I get an email with a subject “PayPal appeal denied” I thought, that’s weird, I didn’t think I was appealing anything…I open the email to find “For the safety and security of the PayPal network, we often review accounts for potential risks. After reviewing your account, we have decided to close it because of security issues. We are making every effort to minimize any disruption to your business.”

SERIOUSLY? For one, there were no security issues, I was operating a completely legitimate business, with no issues what so ever. Secondly, “We are making every effort to minimize any disruption to your business” what a bunch of BS! The least they could do was CALL ME, or say “we’re closing your account in 24 hours”. I would still be mad, but far less furious… to find out my account was outright closed with no warning, thus preventing any further orders from coming in…. I IMMEDIATELY called PayPal, spoke to a person with the authority of a store greeter, who forwarded me to the account department. I spoke to a “Jermey”, who was unhelpful to say the least… He couldn’t provide ANY information except from what he was reading from a script, I asked for his supervisor and was transferred to “Gavin” who claimed he was the highest in the department. (which I doubt, but moving on) Gavin stated that my account was closed and would not be reopened under any circumstances. I asked what the reasoning behind this was, and he provided a very vague answer, “the risk of the account was too high” and that it was a “newly opened account”. Just like Jermey, he was reading from a script, they both said the exact same things when I questioned them. I told Gavin to put himself in my shoes, what would he do if his bank decided to close his account without warning. He agreed, saying he would be very frustrated, but still would not provide any real information. He basically summed the conversation up by saying, “I can’t tell you because it’s internal company information, the decision is final, the account will not be reinstated for any reason, and there is no one higher to speak with.”

At this point, I realized I wasn’t getting anywhere, I said thank you for your time and ended the conversation.

I immediately signed up for Google Checkout, and have been using it since.

At this point, I’m stuck with a locked paypal account with $800 trapped inside that can’t be accessed for 180 days. I should also mention that paypal ALSO locked my personal account that I’ve had since about 2000. I’m never using paypal again, for anything, or for any reason.

Restoring a deleted topic from PHPBB.

To anyone who runs a forum based website, there will come a time when you accidentally delete, or a moderator will delete a topic that should not have been deleted.
This is devastating to a forum running on PHPBB since there is no “undo” or “trash can”, once it’s deleted, the posts/topic are dropped from the sql database, and the attachments (if any) are removed from the attachment directory. They are truly “gone”.

Now, lets assume you have server backups, as you should. Also, this is a complicated process and should only be done in extreme cases. (like when a 63 page topic with 942 posts gets accidentally deleted by a moderator)

The requirements:
First, you’ll need the sql database backup, if there were any attachments with the topic, you’ll need a web file backup as well.
Second, you’ll need to know the ID of the topic you’re trying to restore. Let’s say for example the topic_id was 26446.
Third, you’ll need either a empty database and/or a virtual environment.

Lets begin:
1. Extract your sql backup into an empty database. I’ll be using phpmyadmin for this example.
2. Go to search, enter your ID number as the search value, exact match, select all tables, and specify “topic_id” for the inside field.

3. This will return a result that looks like this:

3. There are only a few tables here that are required: “phpbb_attachments”(if you have any), “phpbb_posts”, and “phpbb_topics”. Click browse on each of these, being sure to open them in a new tab/window.

4. At the bottom of each browse window is a “Export” link, click that, you’ll get a screen like this:

UNCHECK THE STRUCTURE BOX! You just want the data. You also want to save this as a file. Repeat these steps with the two other tables.
5. Now switch over to your live/production database, go to the “Import” tab, and upload the 3 files to it.

Assuming there are no import errors, you’re done importing the sql data! The restored topic should be visible and functional again, the only thing missing at the moment should be attachments.

Now lets assume you have attachments, as a good portion of topics do:

1. Open the phpbb_attachments sql file that we made in step 4 with a text editor.

2. I know this looks crazy, but trust me, it’s easier then you think. All we care about is the large random string in the middle: “32106_0ffb39ce936e4c0b5237c01859df9041” This is the “image” after phpbb converts it.
3. Open your web file backup to the directory where attachments are stored, and search for the string. You should get something like this:

4. FTP the file, and the thumb file (if it exists) to your live/production attachment file directory. Repeat for each file in the phpbb_attachment table.

THAT’S IT! Thank god it’s over… Be more careful next time!

Why Hard Drive Upgrades are Important

You may think Hard Drives are all the same, and that there is no reason to upgrade unless you need more space, however that is NOT the case. Drives are getting faster and faster all the time, with more and more cache.
Take for example this mac mini with the standard 5400 RPM Hitachi Laptop Drive, it was replaced with a 7200 RPM Western Digital Black Drive. The drive benchmarks over 3 times higher, and the system has a dramatic performance boost.