Installing Apache thrift, Cassandra 2.x and YACassandra-PDO on CentOS 6.5+

Hello, Well after a long time this is my in length article, the reason I am writing is because of all the stuff I have been gone through building thrift and cassandra-pdo on centOS 6.5 Versions I will be writing about installing latest version of thrift that at time of writing and RnD was 0.9.1, CentOS is version 6.5 64 bit, php 5.3.3,  Apache/2.2.15, Cassandra is at version 2.06 which is most stable version for production at the time of writing.   Prerequisite Most of the commands will need elevated privileges. You should prefix sudo with every command, I am doing it on test VM so doing it as privileged user root Packages wget, nano are available if not then yum install them as shown below. Of course if you use vi or other util other than wget to download files then skip this [crayon-54069aa168cda190240542/] Ok so lets get started. When I started building thrift, or cassandra pdo I was getting all sort of errors such as [crayon-54069aa168cf3682301981/]   Install Cassandra Installing cassandra is the simplest one, We will be installing it from rpm provided by datastax Open datastax.repo for editing with following command [crayon-54069aa168cff878560588/] paste following content in editor [crayon-54069aa168d3f852222893/]  Install cassandra [crayon-54069aa168d54323919287/] Above command will also install openJDK but cassandra guys recommend that we should use latest java from Oracle so lets do that now Get into opt directory You can actually choose to be any other directory of your liking [crayon-54069aa168d64152730523/] Get RPM path for latest jre  from http://www.oracle.com/technetwork/java/javase/downloads/index.html I am using jre 8 from http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html   [crayon-54069aa168d75188094189/] output of java --version would be  something like [crayon-54069aa168d81445506714/] Lets now install Development … [Read more...]

Config file “/etc/amavisd.conf” does not exist

Hi guys, A quick tip If you get this error either trying to showkeys  or any other action using amavisd You can quickly fix that Generally amavisd.conf file reside under /etc/ but on many distros it can be found here /etc/amavisd/amavisd.conf  So all you have to to make your amavisd commands work is to create a symbolic link as shown below [crayon-54069aa16ba26723793750/] Now if you run your command again it should work. e.g. [crayon-54069aa16ba3e620695296/] should succeed now. I hope this help. If you have anything else to add please leave your comments below. Cheers,   … [Read more...]

Linux Find files newer than certain date and time

Yeah I know generally we pretty much always want to find older files but there are some use cases where finding newer files than a certain date time is a requirement. Ok being no where near to your Linux expertise, I will show you how I do it, you can show your approach to this problem by leaving your comment First step Create a random file with a timestamp as shown below [crayon-54069aa16c4cb990745544/] Second Step We will now find our files that are newer than the timestamp of our dummy file as shown below [crayon-54069aa16c4e3230129132/] If you want to show timestamps too with the listed file here is a modification to above command Showing timestamps [crayon-54069aa16c4fc411834206/] As said this is just one of a few approaches that you can use. With newer version of *ix you should also be able to use [crayon-54069aa16c50e357054273/] command line switch. To get more details on find command either use >man find or browse to http://unixhelp.ed.ac.uk/CGI/man-cgi?find to find more options that you can use. I hope this helps. Also a very happy new year 2014 Cheers, … [Read more...]

Bash Script to send Email in Linux

Hi Guys, If you have mail command available then using it in a shell script is not that difficult, If a guy like me can do it anyone can I guess because I am not a native Linux man :) Anyway lets check how to do it [crayon-54069aa16d140975221422/] I saved above as jasmail.sh As you will notice that I am using the heredoc syntax in the above script. There are sometimes that you want to send custom email messages so accepting the message from command line param makes sense so here is a little modification to the above script so that you can make use of it if you think that it could be useful Alternative [crayon-54069aa16d15a297598361/] So as you can see that in the MSG container I've use ${1} bit which means that the first command param becomes my email message as shown below [crayon-54069aa16d16b634405794/] That makes sense I guess. This is just a basic bash script, the Linux Gurus reading this post will have more to share if they wish to leave their feedback. One last bit, do not forget to give execute permission to the current user else you will not be able to use above bash script. I hope this will help or at least give you an indicator that will serve towards your final result/requirement Cheers … [Read more...]

bash script to monitor apache httpd service and automatically restart/kill if it hangs or not responsive

Hi Guys, My Apache Web-server was playing up a little bit so until I found the cause of it my priority was to keep it up and running so I wrote a bash script to keep an eye on httpd crashes Lets check it out First up is to pick a script name and named it as httpdmon.sh and it is stored in my /home/jas/ directory CronJob Next I would just set a cron job so that it runs every minute and restart/start the service if required. [crayon-54069aa16dbf1421256165/]  Basic Script [crayon-54069aa16dc06029328490/] Above script is good and as you can see that I am using curl to shoot a request to my local website and if the request times out i.e. after 5 seconds then an attempt to restart the service is made Now thats Ok but I would also like to be notified about it and also would like to force kill httpd process if for some reason it hangs A little bit more added to above script [crayon-54069aa16dc18484281258/] As you can see that above will send me a message, you can replace mail command with sendmail etc its up to you. Running that solved few of my issues until I figured out what is causing httpd to crash. If I found something interesting I will be sharing it with you guys. Please note: I am not a Linux Advanced user but just knows enough to do some basic to intermediate things. If you have something to add to would like to improve above script please leave your comments as it would help others. Cheers, … [Read more...]

Linux How to get total directory size

Hi Guys, Just a quick one here, If you want to know size of a directory/folder you can use du command which is short form to disk usage You can cd to that directory and run this command Forget about the fact that I am logged in as root, I was just doing some weird things. Option 1 [crayon-54069aa16e347541455633/] Option 2 [crayon-54069aa16e355968922780/] or [crayon-54069aa16e35f517120370/] Now the above commands will print fill directory size but just in case you want to list sub directory size separately then this is how you do it [crayon-54069aa16e36a676620877/]   You can also specify directory path as shown below [crayon-54069aa16e375790180136/] Above will work on /home/web folder You can also get quite interesting but if all depends what you are trying to do just type [crayon-54069aa16e37f498381033/] to see what else you can do here is a quick link to man page available through http://unixhelp.ed.ac.uk/CGI/man-cgi?du Above listed is just to give you an indicator Linux is so wide with its commands that there could be another 10s of combination to achieve above results but I am not not aware of those 10s so I rely on the above mentioned commands :) I hope this helps Just in case you would like to add something to this post or want to correct improper use of a command please leave your comments Cheers … [Read more...]

Basic Shell script to automatically start NodeJS if for some reason it stopped

Hi Guys, Well this one is a really basic example of a shell script that I used before in one of my production NodeJS website called http://icompressjs.com Here is the bash script that I wrote to monitor my local node install [crayon-54069aa16ec6a275013262/]     as you can see that I am running Node on port 8080 and I am using curl to send a request to my node server. If response is 200 that is good and it will print "All Working well" else it will try to start NodeJS server You can also plugin another line to send email to you when a server is launched again. Something like this [crayon-54069aa16ec8d939946227/] put above line just under echo "Launching" Now the final step is to cron this our bash script. I named it as node_monitor.sh You will have to give your local user rights to execute this script, after doing that you are able to cron it as shown below [crayon-54069aa16ec9b508884935/] Above lines says that every 5th minute run node_monitor.sh If the response is ok i.e. 200 then nothing will be done else there will be an attempt to start NodeJS server again You can improve this script with better error handling but for what I was trying to do this was sort of enough I hope this helps Cheers         … [Read more...]

Linux Count lines in file and Sum count

Hi Guys, To start with I am intermediate user of Linux and use RedHat at work and Ubuntu at home. I had this job where I have to search my apache server logs for some "text". Count the number of lines that have this "text" in them. Well I know basic shell scripting so I just used a bit of basic commands to get what I wanted. If you know other better solution please leave yours in comments. [crayon-54069aa16f4ad630346227/] So DIRPATH above holds path to my access logs directory and I am iterating over to get line count of files one by one and my COUNTTOTAL variable holds the overall count. Above example show to count all lines and summing the output. In the example below lets make a slight change and search for a string "abc.com" and see how many lines have this string present. [crayon-54069aa16f4cf889819222/] [crayon-54069aa16f4db667498158/] [crayon-54069aa16f4e5059295274/] As you can see that we now are searching text "abc.com" in a file and piping the output to wc command adding the output to our global variable COUNTTOTAL and printing it using echo command. you should change DIRPATH to suit you. You can use the same fundamentals to create a dynamic list of file e.g. count the number of lines for files that are younger than 30 day, and iterate over them. We have used the following command in our shell scripts and each of the one have link to their manual page grep wc cut As my mate David Overton pointed out that above can be achieved without a script so here are our shell commands to do exactly the same thing. I think I am just stuck with scripting mind frame :) First command (equivalent to first script): [crayon-54069aa16f4f2959060229/] Second command (equivalent to second script) : [crayon-54069aa16f4fc968212345/] I hope that this helps. If I made any mistake please let me know. Cheers     … [Read more...]

Cpanel: Install mod_cloudflare

Hello, Now that I've put my site on CloudFlare, hopefully you will see a performance boost and site load time should drop. Guys at Cloudflare directed me to read this document which I think was sort of a kick start on "How To with cloudflare?" You can read that document here http://blog.cloudflare.com/cloudflare-tips-recommended-steps-for-new-use This document helped me a lot in understanding the configurations and how to use CloudFlare control centre. You must be aware that CloudFlare act as a proxy to your server thus all the IP addresses hitting your server would be CloudFlare's IP addresses. Your access logs will start looking weird. You should also read these documents https://cloudflare.tenderapp.com/kb/why-do-i-see-cloudflares-ips-in-my-server-logs-or-site-logs Now this post just tackle one specific problem i.e.     How to install mod_cloudflare under CPanel Follow these steps Use putty or similar tool to connect to your server using SSH. Goto your home directory or goto /usr/local/src We will download the source code for mod_cloudflare now with the following command [crayon-54069aa170488214292335/] Above step will download file called mod_cloudflare.c  We will now use apxs (Apache Extension Tool) to install our mod_cloudflare with the following command [crayon-54069aa17049a086708770/] Make sure that you have not changed your working directory Now we will restart our Apache service with the following command [crayon-54069aa1704a5585574090/] OR [crayon-54069aa1704b9851971055/]  Final step would be to update Apache Configuration and is done with the following command [crayon-54069aa1704c3008667743/]   Make sure that there is no error from any of the above step. If you are not a system administrator then you should avoid doing it. But if you are a a techie and are confident enough then go ahead and do it. I also have compiled these instruction from … [Read more...]

Ubuntu Download youtube videos as mp3

Hello, In my last post I highlighted how you can download youtube videos using a great tool called youtube-dl In this post we will be covering a few things. Downloading youtube videos and later converting them to mp3 Downloading videos directly as mp3 We will be making use of ffmpeg and youtube-dl for our case. Lets go Preperation Just so that you know that you will need to install youtube-dl first on your Ubuntu box. If you haven't read my previous article please read that from here http://jaspreetchahal.org/ubuntu-12-04-download-youtube-videos-using-youtube-dl/ You will also need to install ffmpeg. You can install it using the command below [geshi lang="bash" nums="1" target="_self" ] [crayon-54069aa170f5a329820700/]   Downloading video from youtube and converting them to mp3 using ffmpeg Lets download a video from youtube now. Considering that you are in /home/user/videos directory and you have write permissions to this folder, run this command [geshi lang="bash" nums="1" target="_self" ] [crayon-54069aa170f6e824338765/] Your video will now be stored under /home/user/videos as C-2MmguSO4w.mp4 You can also specify a file name when using youtube-dl as shown below [geshi lang="bash" nums="1" target="_self" ] [crayon-54069aa170f85151987558/] Depending on your download speed it can take a while to download this video. Just in case if you got error saying "Unable to download" then you would like to read my previous post. Now we have C-2MmguSO4w.mp4 to work with. Lets convert it to mp3 The command [geshi lang="bash" nums="1" target="_self" ] [crayon-54069aa170f91503698193/] The above command will convert our mp4 file to a mp3 -ab 192000 in above command means that our mp3 should be encoded at 192Kbps for great quality -vn means that do not include video -i means input file name To know more about ffmpeg command read more … [Read more...]