About Jay Jay

Hi there. My name is John Elliot V. My friends call me Jay Jay. I talk about technology on my blog at blog.jj5.net and make videos about electronics on my YouTube channel @InTheLabWithJayJay.

Using PHP output buffering to read a file

There’s a function in PHP called readfile which will read a file and send its contents to stdout. That can be handy, but it’s not much good to you if you want to read the content of the file into a string.

There’s a neat trick using PHP’s output buffering that enables you to read the content of a file into a string without printing anything on stdout, and it goes like this:

  // start an output buffer
  ob_start();
  // print the file to the output buffer
  readfile( $file_path );
  // get the contents of the output buffer
  $content = ob_get_contents();
  // cancel the output buffer
  ob_end_clean();

crontab

I’m setting up some backup scripts and am using cron to schedule them to run. Usually I run my backup scripts as root and just link a file into /etc/cron.*/ for periodic processing. However in this case I need to run the backup scripts as my user (they’re offsite backup scripts that use rsync to copy data) and not root, so I used crontab -e to edit my crontab. I did a little reading on crontab and learned about the @weekly syntax which I’ve used for the first time today. Now I guess I just wait a week and see that everything is working. :)

WinSCP command line options

Finally got around to taking a look at WinSCP’s command-line options. Basically I just needed to specify a session name and that was it. Now I have a set of icons on my desktop for scping to my various servers. I even configured a shortcut key for servers I use often, so now all I need to do to get at my remote ProgClub files is press Ctrl+Alt+Shift+C.

Bash aliases for listing hidden files

I finally figured out the ls command to list hidden files, and decided to setup a ~/.bash_aliases file for the first time. My ~/.bash_aliases file is now:

alias l.='ls -d .[!.]*'
alias ll.='ll -d .[!.]*'

So I have an “l.” command which will list hidden files and directories, and an “ll.” command which will list the same information in detail.

Keeping Your SSH Sessions Alive Through NAT Firewalls

I found this article Keeping Your SSH Sessions Alive Through Pesky NAT Firewalls which explained how to keep SSH connections alive through NAT firewalls. I’m behind a NAT router and my SSH connections are always timing out due to inactivity, and it annoys the shit out of me. I’ve been putting up with it for ages, and tonight I finally got around to searching for a solution. The solution is to edit your ~/.ssh/config file and add:

Host *
    ServerAliveInterval 240

That will make the server send a keep-alive packet every four minutes, which out to do it. Haven’t tried it yet, but expect it will work. Will configure my systems now…

Update: that didn’t seem to work for me. :(

Maybe this is a client setting?

Anyway, I did some more research, and I found that PuTTY has a configuration option in the Connection settings “Sending of null packets to keep session active”, “Seconds between keepalives” which defaults to 0 (turned off). So I’m gonna try with that now.