Fixing a cPanel Insufficient Disk Space Problem

So I logged into our company website’s WHM portal the other day and noticed that the most recent cPanel update had failed due to insufficient disk space. Here was the message:

The last attempt to update cPanel & WHM was blocked.
 Please correct these issues and rerun updates.
 fatal: Cannot upgrade due to insufficient disk space. Detected 1.97GB. You will need at least 3GB to install/update to a new version of cPanel.

Sounds simple enough, right? However, a quick check of the server revealed that:

  • /usr had only been allocated 8GB
  • /usr was 76% full

A quick Google search turned up some tips for freeing up disk space in /usr (where cPanel lives). Searching for and deleting large log files only freed up about 500MB, still quite far from the 3GB we needed. Unable to move further, I contacted the technical support team of our hosting provider. They provided me with the syntax to find large files in Linux. Back to square one.

Luckily, Uplogix employs a team of highly talented developers who know Linux far better than I do. Since the server had so much space in /home (100GB free), they suggested simply moving /usr/local/cpanel to /home/cpanel.

What Didn’t Work

Our first attempt went like this:

  • shut down cpanel process
  • copy /usr/local/cpanel to /home/cpanel
  • mv /usr/local/cpanel to /usr/local/cpanel.bak
  • create a symlink from /usr/local/cpanel to /home/cpanel
  • start cpanel process

Unfortunately, we were greeted with 500 Internal Server errors when we tried to connect to cPanel and WHM. We guessed this was a permission problem.

What Did Work

It turned out that I was searching for the wrong terms, and after more Googling, found Moving cpanel location from /usr/local to home. User Eddie suggested we use a bind mount instead of a hard link.

mount --bind /home/cpanel/ /usr/local/cpanel/

Here were the steps:

  • shut down cpanel process
  • copy /usr/local/cpanel to /home/cpanel
  • move /usr/local/cpanel to /usr/local/cpanel.bak
  • make a new directory: /usr/local/cpanel
  • bind /usr/local/cpanel to /home/cpanel
  • start cpanel process

Even without deleting /usr/local/cpanel.bak, the cPanel update completed without issue.

PROBLEM: The mount command we ran won’t persist across a reboot.

SOLUTION: Add the mount command to /etc/fstab

root@upxwebserver [/usr/local]# cat /etc/fstab
# wasn't enough space in /usr/local for cpanel, so we had to move it to /home 
/home/cpanel /usr/local/cpanel none defaults,bind 0 0

We then rebooted the server and everything continued working fine.

Problem solved.

Thanks to Matt for steering me away from trying to resize the partitions on the server. Additional thanks to Jeremy for playing Clash of Clans on his phone when the going got tough.

Stealing Roberta

For legal reasons I don’t fully understand, this disclaimer is in the front material of Perion Synthetics:

This book is a work of fiction. Names, characters, places, and incidents are the product of the author’s imagination or are used fictitiously. Any resemblance to actual events, locales, persons living, dead, or synthetic, is purely coincidental.

It’s generally not a good idea to use real people in your stories. As awesome as it would be to have Natalie Portman fighting cybernetic dinosaurs on a dinghy in the South Pacific, she probably wouldn’t be too thrilled to find out about it when your cross-genre erotic fanfic blows up like you just know it will. Profiting from a real person’s likeness (whether they’re an actor or a model or a local anchorwoman) may even get you sued.

Here’s what a lazy Google search turned up:

There are two distinct legal claims that potentially apply to these kinds of unauthorized uses: (1) invasion of privacy through misappropriation of name or likeness (“misappropriation”); and (2) violation of the right of publicity. (The “right of publicity” is the right of a person to control and make money from the commercial use of his or her identity.)

Source: Digital Media Law Project

In the good old days of the Internet, you could use someone else’s work or likeness without attribution, and they would have very little chance of finding out. These days, the Internet is a much smaller place, so if you’re stealing someone else’s stuff, they’re likely going to call you out on it. I used to and still enjoy taking images from DeviantArt and making promotional material for my books. The difference is that now I only share those privately with friends on Facebook. To use them publicly, I need to ask the artist’s permission or pay for the privilege.

While I’ve never used a real person in my stories, I’ve definitely been inspired by a few. This mostly happens as a result of a Science Fiction cliché in which a woman too beautiful for her role enters the picture. In Xronixle, the general look of the Lucienne character was inspired by Luba Shumeyko. In Veneer, some of Ilya’s features were inspired by… someone else. What does it mean to be inspired by someone’s look? I think of it like this:

Alright, G and Natalie are rushing the various security levels of the singularity when a woman as attractive as Luba Shumeyko shows up to stop them.

Sometimes when I write about a location I’ve never been to, I pull up images on Google or go to street view in Google Maps. Then I can just project my story onto what I see. The same works for people; it just helps kick off the imagination process.

A few chapters into Perion Synthetics, Cameron Gray meets a prototype synthetic. When it came time to write that scene, I asked myself:

If a company were to develop a true-to-life synthetic human, what would it look like?

To which my brain answered:

Probably a lot like Roberta Murgo.

When I’m writing a zero draft, I don’t stop to think of better names for characters, so I just named this prototype synthetic Roberta and moved on. When it was time to go back and rewrite, the name had grown on me.

That’s why, when I was messing around one day with the dream cast for the movie version of Perion Synthetics, I made this graphic:

If you click over to my About Me page, the first image shows the individual pictures I printed out and taped to the wall to help keep me motivated during revisions. I eventually showed the above to my Facebook friends just for fun. Later, on a whim, I used it as a throwaway piece of eye candy on a blog post. Surely nothing would come of it, right? I mean, honestly, who reads my blog besides you, Mom?

Yesterday, this happened:

Never in a million years would I have thought I’d get busted by Roberta Murgo. Lucky for me, she was a good sport about it. She even posted the image to her own Facebook page. And she hasn’t sued me yet, so that’s a bonus.

She left a few comments on Tuesday Roundup 7/16, but the one I found most interesting was in regards to her not suing me:

ok! i wont! just please do not refer to me in sexual ways because i am married

It reminded me of when I was having the cover of Perion Synthetics made. In a copyright-free world, I probably would have found a picture of Roberta on the Internet, slapped it on the cover, and called it a day. Instead, I called in a favor from a friend and asked if she would lend her likeness to the cover of my next book.

Having known me since high school, she was smart enough to ask for a synopsis before agreeing, lest there be something in my story that she didn’t want her likeness associated with. Though my friend is not starring in blockbusters or walking the runway, she still has a public image to protect, so you can understand why some people would vigorously defend their right to “control and make money from the commercial use of his or her identity.”

Ultimately, I probably should have kept my Perion Synthetics Dream Cast image to myself.

But then, if I hadn’t posted it, I wouldn’t have gotten the opportunity to trade comments with the woman who inspired the most advanced, beautiful-but-lethal, synthetic human ever known to Science Fiction. And yeah, that includes Cameron from The Sarah Connor Chronicles.

Big thanks to Roberta for commenting and sharing!

You and I, Arjuna, have lived many lives.

I remember them all, you do not remember.

Jeff Winston was on the phone with his wife when he died.

I was only nine or ten when I picked up Replay for the first time. In the decades since, I’ve read it over and over again in the hopes of becoming a better writer. It has taught me how to be direct with my language, how to be honest with the motivations and desires of my characters, and most importantly, it showed me (and continues to show me) that stories can be more than just entertainment; they can make your reader feel something.

Prior to reading my first big boy book, I was content to devour anything written by Judy Blume, Louis Sachar, and Bruce Coville. If there was a finer book than My Teacher Fried My Brains, I hadn’t read it. I had always been aware of my parents’ bookshelf, but the titles had always seemed so imposing. ShogunThe Satanic Verses, IT. Okay, IT is not that imposing, but still. These books were dense and full of big words I didn’t understand.

Replay, though, seemed instantly accessible. I turned to the first page and there it was.

Jeff Winston was on the phone with his wife when he died.

It might have been the best and worst of times, and the clocks might have been striking thirteen, but I consider Replay’s opening line to be one of the best in literature. There is so much contained in this one little sentence, and it is as tragic as it is mundane. We join the story just as the main character dies. At ten years old, I had yet to read a book where anyone dies, let alone at the very beginning of the story.

Replay is the story of a middle-aged guy who dies and wakes up as his 18 year old self with all of his knowledge still intact. He has to relive his life knowing what will happen, not just to himself, but to the world. He tries to avoid the bad moments and recapture the good, but as he finds out, the future isn’t set. Just by having knowledge of it, of thinking he knows how it will go, he changes his replay in ways he couldn’t have imagined. He lives another life, only to die again of another heart attack.

Wash, rinse, and replay.

Jeff Winston was on the phone with his wife when he died.

Whenever I tell someone about Replay, I usually just parrot the synopsis and hope they find it interesting enough to purchase the book. However, to really tell you why this book is my favorite, we have to go beyond the sex, drugs, love, and loss of Jeff’s various replays. You see, on a superficial level, a man counting cards in Vegas or betting on the Preakness is just as entertaining as Peter trying to mail his little brother. There are a lot of books, and a lot of sci-fi, that are just pure entertainment. Just really cool things that happen to really cool people. And explosions.

Replay is different. I didn’t realize it until the very end of chapter seven. For the first third of the book, I was pretty entertained. Jeff gets into some crazy stuff (crazier if you’re a ten year old boy with no reckoning of the adult world), but it wasn’t until this moment that I realized something incredible: I was having an emotional response to a story. It was like a moment of sudden self-awareness. I saw beyond the narrator to Ken Grimwood sitting at his typewriter. I saw him crafting the story, moving pieces here and there, trying to elicit an emotional reaction.

After that moment, everything changed.

Jeff Winston was on the phone with his wife when he died.

I tell people I like to write love stories disguised as Science Fiction, and I owe that all to Replay. Though time travel is a common SF element, the emotional journey Jeff takes throughout his many lives seems to be unique. (I wouldn’t see it again until decades later in The Time Traveler’s Wife.) It’s all well and good to have virtual reality and robots and endotech, but there has to be an element that reaches out to the reader and squeezes their heart in their chest.

Transferring emotional content from the writer to the reader (or trying to, anyway) has shaped the content of my novels and will continue to forever. Xronixle would not be the same if X didn’t have a misguided love for CVeneer would have been all visuals if not for the misunderstood relationships between Deron and Rosalia, and Rosalia and Ilya. In Perion Synthetics, I wanted to focus on the relationships between humans and synthetics more than the novelty of anatomically correct sex robots.

Replay was the first book to show me that emotional transfer was possible through storytelling.

The possibilities, Jeff knew, were endless.

There is so much to learn from this book beyond what writing is about. So much of my personal style is derived from Grimwood’s that I often read this book, or just chapters, before I start writing something new, or when I’m stuck. If I can’t start a chapter, I’ll load up my Kindle and read a few from Replay, just so I can remember that yes, writing is easy, so long as you are direct and honest.

Here are some other things I’ve learned from Replay:

  • Flaws give a character depth
  • The narrator is as much a character as the characters
  • Sex is a natural part of human existence, no matter what the American Family Association says
  • Chapters should end with a smooth taper or powerful bang, never ambiguously
  • Respect the emotional connection between the reader and the characters
  • Write freely

All of this said, Replay is not just a book to inspire readers to be writers. It is entertaining and thoughtful, exciting and poignant. I tell everyone who hasn’t read it that they must read it now, which reminds me:

If you have not read this book, you must read it now.

Order the book from Amazon.

Read more about Ken Grimwood at Wikipedia.

If you’ve read the book, what was your favorite part?