Technology Insights

PHP Script Using Exec Function & Launched From Crontab Hogging Server Memory

While working on a PHP script on a CentOS Linux server that runs from crontab I ran into an issue where PHP was bogging the server down because of memory use. The script has a lot of output that is not necessary to store though when using the exec function within the PHP script it was storing the unneeded output to an away which I believe was causing the memory usage problem. At first I thought I simply needed to modify the memory_limit setting within php.ini however that was not the true issue at hand. Below I describe two items to look at modifying if you run into a similar issue.

Code Snippets

Bash Script That Deletes Directories Older Than X Days If Y Number Of Directories Exist

Earlier tonight I created a little script that will run in cron on a Linux server. The script counts the number of directories and files in a specific directory and if the count is above Y then it deletes directories and files older than X number of days. In the example script below the number of items (directories and files) that have to be located in the directory before the script to delete files older than a specific date is 10. If there are ten items then the script will delete items older than 90 days. Below the script is the entry made in a specific users cron on the Linux server.

Technology Insights

Graphing GPU Temps with Gnuplot on a server

If you have been keeping up with the development on our tools server you will know that we just did a big rebuild and I was looking for a way to monitor the GPU temperatures. Yesterday I wrote a article about how to get these temperatures on a linux server which does not have a X-server installed. Alex is currently writing some custom Cacti plugins to monitor temps but in the meantime I decided to figure out another way. I have never needed to use Gnuplot for anything and I figured this was as good a time as any to learn.

Code Snippets

Ruby Script to Update Github Repos and Fetch Changesets for Redmine

I recently started using Redmine for numerous projects and could not be happier with the application so far. Not only is it actively developed and already includes a ton of great features but it doesn’t seem bloated at all. Many of the projects I have configured for Redmine have their code base stored on Github so I needed to find a way to add code updates that referenced tickets to the tickets themselves. At first I was having a bit of trouble understanding exactly how this should be achieved but after digging around it ended up being pretty easy. You will need to configure local repos underneath your Redmine project that are updated fairly regularly and then after they are updated you will need to run a script that updates the any ticket that code has been associated with.

Technology Insights

How to List Crontabs For All Users in Linux

In Linux you can list the contents of a users crontab from root by issuing the below command:

[root@server ~]#crontab -u username -l

How do you list crontabs for all of the users on your Linux server? The easiest way is to list the contents of /var/spool/cron which will provide you a list of all of the users that have cron entries. Then if you need the specific details of a users cron entries you can use the command above and replace username with the username in question to see the details.