Check whether it sysklogd present.
[~]# rpm -q sysklogd
If not install it,
[~]# yum install sysklogd
Then restart the service,
[~]# /etc/init.d/syslog restart
NiyasHussain.comSchool Of Linux
Drug preguntas
Jun 13
Check whether it sysklogd present. [~]# rpm -q sysklogd If not install it, [~]# yum install sysklogd Then restart the service, [~]# /etc/init.d/syslog restart Jun 13
cPanel may have some very annoying bugs sometimes however there are very useful bits of it that can help in general system administration, dealing with a very busy server and trying to terminate an account that has high disk usage will make the load averages go sky high however thanks to this neat little application provided with cPanel, you can forget about freaking out on high server load. I have personally tried multiple solutions (including nice) but the loads would still go high and the server would be unusable. With every cPanel installation, there is a binary located at
Another neat feature is that it can fork a new process or attach itself to a running process, here is an example of deleting an account using SSH and setting the load average threshold to 4.0
The load average will go past 4 however the process will stop running as it goes past that limit, if you already have a process running and you do not want to restart it all, you can run the following command to attach it to the process, in this case, the process ID of my process is 18274.
It’s a very simple but very neat utility that has saved me a few times where I had to do major file operations and did not want the server to have high load averages, this same binary is also used when the logs are running for cPanel and as well as when the cPanel backups are running. Jun 13
We’ve been lately starting to use more Adaptec RAID controllers rather than 3ware RAID controllers. 3ware has been nothing but trouble for us, dropping hard drives, even RAID5 arrays are running slower than a regular hard drive with no RAID. Our latest issue was a server just simply having a Kernel Panic when using high IO, our experience with 3ware RAID controllers & Linux is terrible. On this other side, Adaptec has been great. We’ve been using them for a while now and see no problems at all, however there is just a small catch, Linux usually has a SCSI subsystem timeout of less than 30 seconds which results in a small difference between the controller timeout (at 35 seconds) versus the Linux timeout (at 30 seconds). This usually brings a server to a halt for a couple of seconds (and minutes in cases) till the server recovers, errors like this are thrown in the console:
The best method that usually works best is to increase the timeout higher than 45 to ensure that the Linux timeout does not occur before the RAID controller timeout, this is done per device / array.
This should be done to every device, 45 is a good number however you can use what you’d like as long as it’s over 35. If you’re experiencing issues with loads going sky-high with no apparent reason, this might very well be the reason, to check if this is a possible cause, you can run the following
If you see errors like the ones that I have up there, then I suggest using that small workaround, if even after using the workaround, you’re still facing these problems, here are the suggestions/checklist that Adaptec suggests:
Anyhow, just like with every Linux issue, your mileage may vary, so if you know of any other fixes or figured out a way how to fix this, feel free to post it as a comment to help others. Jun 13
It seems there there was a little flaw in the script that I wrote a while ago, any PHP sessions on the server will timeout/die after 1 hour if you run that as an hourly cronjob, I have made a small modification to the script. The only small modification is that now, it deletes all
# Change directory to /tmp # Clean up trash left by Gallery2 # Clean up PHP temp. session files # Clean up dead vBulletin uploads # Clean up failed php uploads # Clean up failed ImageMagick conversions. Thanks! Jun 13
We have a few clients that were WHM resellers and upgraded to VPS with root cPanel, however there is no main easy way to migrate WHM reseller account to a root account under WHM, that’s where we started playing around and making our own script. You need root access to the source and final server to do this, this looks like the fastest way to do this at the moment. First of all, we need to get all the accounts and create a backup of their accounts, this is done using a couple of bash lines and parsing the file
Usually this takes a while so this is what you can do if it’s halfway done to save time
This will start moving the files from the old server to the new one, we use
After finishing that, you should be all done! Jun 13
Simple, short & sweet post, this should easily fix any problems you’re having
Also, this might be useful to run hourly, I leave this on our servers “just in case”.
Jun 13
One of the major pluses of cPanel that it doesn’t delete the backup of the account when terminating an account and neither it does remove it on the next backup run, while that can be a good thing if the customer comes back, on the long term, the backup drive starts to slowly run out of space and eventually these big accounts that have been stored for a while will need to be removed. I had to go cleanup the backup of one of the servers and I was not about to read them account-by-account however I have used my basic bash coding skills to whip up a small code that helps me in the process! The code isn’t long at all and it isn’t anything genius, first I generate a small list of the accounts that are in the backup directory, we only run weekly backups and our backup is mounted at
Now, a small loop that I created so that it filters out all the users that are in the backup directory but are not existent on the server anymore (or do not have the same username).
There was a lot of accounts to be removed or deleted as this servers’ backups have been left hanging for a while so it would be a very hard task to actually find the accounts that have high disk usage so I made the following script that takes the size of each one of the accounts and puts it in a file.
After that, we make our life a lot easier by sorting the results by the size, however, there is one dangerous thing I warn you from, the “dirs” directory might appear as the biggest one but it contains usually MySQL files and configuration files which are very important, you should simply ignore it.
Now, you have a file with all the accounts that do not exist on the server but have backups with their size sorted, you can just go and clean them up as you go, until then, I go back to erasing these useless space hogs! Jun 13
http://www.cplicensing.net/scripts.php perl process listening on Port 80 and 443 root@server204: lsof -i TCP:80 | grep perl | awk ‘{print $2}’ |xargs kill -9 root@server204: lsof -i TCP:443 | grep perl | awk ‘{print $2}’ |xargs kill -9 Apache Down a)Semaphore issue–run this command ipcs -s | grep nobody | perl -e ‘while () { @a=split(/\s+/); print `ipcrm sem $a[1]`}’ b)Port 80 and 443 running for another process. lsof -i TCP:80 | awk ‘{print $2}’ |xargs kill -9 start apache. To change IP address of DNS zone ################################### Find Sync attack netstat -pant|grep SYN|awk ‘{print $5}’|sort|uniq -c|sort -n|grep -v 127.0.0.1|cut -d: -f1 Kill Zombie process ps -ef | grep mailnull | grep -v grep | awk ‘{print “kill -9″, $2}’ | sh replace mailnull with particular proces name which has zombie Jun 13
I’ve lately had a few clients complaining about their PHPList installs not working properly when using Fantastico, I tried it out myself and it does indeed seem to be somewhat broken. Usually when you go the adminstration page, it simply shows and empty page and if you view the source for that page, it contains something along of these lines: The cause of this problem seems to usually be a default Fantastico setting that is not properly set, to fix this, you will need to edit your
With the following, of course replacing
After a few days of research on this and a few angry clients, it’s all figured out so I guess why not share them with other system administrators, it’ll save them some trouble! Jun 13
Java Installation I chose to install Sun’s Java 2 Platform, Standard Edition, which can be downloaded from http://java.sun.com/j2se/). I chose the J2SE v1.4.2 SDK Linux self-extracting binary file. Change to the directory where you downloaded the SDK and make the self-extracting binary executable: chmod +x j2sdk-1_4_2-linux-i586.bin Run the self-extracting binary: ./j2sdk-1_4_2-linux-i586.bin here should now be a directory called j2sdk1.4.2 in the download directory. Move the SDK directory to where you want it to be installed. I chose to install it in /usr/java. Create /usr/java if it doesn’t exist. Here is the command I used from inside the download directory: mv j2sdk1.4.2 /usr/java Set the JAVA_HOME environment variable, by modifying /etc/profile so it includes the following: JAVA_HOME=”/usr/java/j2sdk1.4.2″ /etc/profile is run at startup and when a user logs into the system, so you will need to log out and log back in for JAVA_HOME to be defined. You should have to logout from the server to check whether its workgin fine. exit Check to make sure JAVA_HOME is defined correctly using the command below. You should see the path to your Java SDK. Check to make sure JAVA_HOME is defined correctly using the command below. You should see the path to your Java SDK. TOMCAT Installation Download it from http://tomcat.apache.org/ You will install and configure Tomcat as root; however, you should create a dedicated group and user account for Tomcat to run under as follows: groupadd tomcat useradd -g tomcat tomcat tar xvzf apche-tomcat-5.0.28.tar.gz mv jakarta-tomcat-5.0.28 /usr/local/ chown -R tomcat.tomcat /usr/local/apache-tomcat-5.0.28 cd /usr/local/apache-tomcat-5.0.28/bin tar -xvzf jsvc.tar.gz cd jsvc-src chmod +x configure ./configure make cp jsvc .. cd .. ./startup.sh open web browser and type http://localhost:8080/ you should see the Tomcat Administration page go to webapps/ROOT in the tomcat directory and create page hello.html and write in it Hello Tomcat open the URL http://localhost:8080/hello.html you should see your page * Make JSP page go to webapps/ROOT in the tomcat directory and create page hello.jsp and write in it the following lines < %=new String(”Hello Ahmed Hashim”)% > < %=new java.util.Date()% > save and run the following URL http://localhost:8080/hello.jsp you should see my Name * Monitor Tomcat you can see the log file in the logs directory * Stop Tomcat go to the tomcat bin directory #./shutdown.sh You can add users in cd /usr/local/tomcat/conf And access it at http://localhost:8080/manager/html Username : from tomcat-users.xml Jun 13
Error : spamd failed @ Tue Jan 28 04:20:06 2008. A restart was attempted automatically. Here is possible way to fix this problem. It appears to happen because of some bad CPAN links setup through cpanel. This should clear it out and hopefully restart spamd. Logged in as root via ssh do the following: rm -rf /home/.cpan /scripts/eximup –force Hopes this will fix the issue. Jun 13
rpm -vv –rebuilddb we have added the option -vv here, so that there is visible progress and lots of detail during the rebuild process — A worried admin is often impatient at a lack of visible progress — this option causes the rebuild process to be quite verbose The way a rpm –rebuilddb command works, it creates a temporary directory to work in at: /var/lib/, next to the ‘parent’ one at: /var/lib/rpm/ and attempts a rebuild. As it gets to the very bottom of a normal rebuild, it replaces the new content over top of the old files. Jun 13
bc lynx Compressed Files Files typically contain a lot of data that one can imagine might be represented with a smaller number of bytes. Take for example the letter you typed out. The word “the” was probably repeated many times. You were probably also using lowercase letters most of the time. The file was by far not a completely random set of bytes, and it repeatedly used spaces as well as using some letters more than others. [English text in fact contains, on average, only about 1.3 useful bits (there are eight bits in a byte) of data per byte.]Because of this the file can be compressed to take up less space. Compression involves representing the same data by using a smaller number of bytes, in such a way that the original data can be reconstructed exactly. Such usually involves finding patterns in the data. The command to compress a file is gzip , which stands for GNU zip. Run gzip on a file in your home directory and then run ls to see what happened. Now, use more to view the compressed file. To uncompress the file use gzip -d . Now, use more to view the file again. Many files on the system are stored in compressed format. For example, man pages are often stored compressed and are uncompressed automatically when you read them. You previously used the command cat to view a file. You can use the command zcat to do the same thing with a compressed file. Gzip a file and then type zcat . You will see that the contents of the file are written to the screen. Generally, when commands and files have a z in them they have something to do with compression–the letter z stands for zip. You can use zcat | less to view a compressed file proper. You can also use the command zless , which does the same as zcat | less. (Note that your less may actually have the functionality of zless combined.) A new addition to the arsenal is bzip2. This is a compression program very much like gzip, except that it is slower and compresses 20%-30% better. It is useful for compressing files that will be downloaded from the Internet (to reduce the transfer volume). Files that are compressed with bzip2 have an extension .bz2. Note that the improvement in compression depends very much on the type of data being compressed. Sometimes there will be negligible size reduction at the expense of a huge speed penalty, while occasionally it is well worth it. Files that are frequently compressed and uncompressed should never use bzip2. 4.14 Searching for Files You can use the command find to search for files. Change to the root directory, and enter find. It will spew out all the files it can see by recursively descending [Goes into each subdirectory and all its subdirectories, and repeats the command find. ] into all subdirectories. In other words, find, when executed from the root directory, prints all the files on the system. find will work for a long time if you enter it as you have–press Ctrl-C to stop it. Now change back to your home directory and type find again. You will see all your personal files. You can specify a number of options to find to look for specific files. find -type d There are many more options for doing just about any type of search for a file. See find(1) for more details (that is, run man 1 find). Look also at the -exec option which causes find to execute a command for each file it finds, for example: find /usr -type f -exec ls ‘-al’ ‘{}’ ‘;’ find has the deficiency of actively reading directories to find files. This process is slow, especially when you start from the root directory. An alternative command is locate . This searches through a previously created database of all the files on the system and hence finds files instantaneously. Its counterpart updatedb updates the database of files used by locate. On some systems, updatedb runs automatically every day at 04h00. Try these ( updatedb will take several minutes): updatedb locate rpm Searching Within FilesVery often you will want to search through a number of files to find a particular word or phrase, for example, when a number of files contain lists of telephone numbers with people’s names and addresses. The command grep does a line-by-line search through a file and prints only those lines that contain a word that you have specified. grep has the command summary:
[The words word, string, or pattern are used synonymously in this context, basically meaning a short length of letters and-or numbers that you are trying to find matches for. A pattern can also be a string with kinds of wildcards in it that match different characters, as we shall see later.] Run grep for the word “the” to display all lines containing it: grep ‘the’ Mary_Jones.letter. Now try grep ‘the’ *.letter.
Regular Expressions A regular expression is a sequence of characters that forms a template used to search for strings [Words, phrases, or just about any sequence of characters. ] within text. In other words, it is a search pattern. To get an idea of when you would need to do this, consider the example of having a list of names and telephone numbers. If you want to find a telephone number that contains a 3 in the second place and ends with an 8, regular expressions provide a way of doing that kind of search. Or consider the case where you would like to send an email to fifty people, replacing the word after the “Dear” with their own name to make the letter more personal. Regular expressions allow for this type of searching and replacing. Overview Many utilities use the regular expression to give them greater power when manipulating text. The grep command is an example. Previously you used the grep command to locate only simple letter sequences in text. Now we will use it to search for regular expressions. In the previous chapter you learned that the ? character can be used to signify that any character can take its place. This is said to be a wildcard and works with file names. With regular expressions, the wildcard to use is the . character. So, you can use the command grep .3….8 to find the seven-character telephone number that you are looking for in the above example. Regular expressions are used for line-by-line searches. For instance, if the seven characters were spread over two lines (i.e., they had a line break in the middle), then grep wouldn’t find them. In general, a program that uses regular expressions will consider searches one line at a time. Here are some regular expression examples that will teach you the regular expression basics. We use the grep command to show the use of regular expressions (remember that the -w option matches whole words only). Here the expression itself is enclosed in ‘ quotes for reasons that are explained later. grep -w ‘t[a-i]e’ The above regular expressions all match whole words (because of the -w option). If the -w option was not present, they might match parts of words, resulting in a far greater number of matches. Also note that although the * means to match any number of characters, it also will match no characters as well; for example: t[a-i]*e could actually match the letter sequence te, that is, a t and an e with zero characters between them. Usually, you will use regular expressions to search for whole lines that match, and sometimes you would like to match a line that begins or ends with a certain string. The ^ character specifies the beginning of a line, and the $ character the end of the line. For example, ^The matches all lines that start with a The, and hack$ matches all lines that end with hack, and ‘^ *The.*hack *$’ matches all lines that begin with The and end with hack, even if there is whitespace at the beginning or end of the line. Because regular expressions use certain characters in a special way (these are . \ [ ] * + ?), these characters cannot be used to match characters. This restriction severely limits you from trying to match, say, file names, which often use the . character. To match a . you can use the sequence \. which forces interpretation as an actual . and not as a wildcard. Hence, the regular expression myfile.txt might match the letter sequence myfileqtxt or myfile.txt, but the regular expression myfile\.txt will match only myfile.txt. You can specify most special characters by adding a \ character before them, for example, use \[ for an actual [, a \$ for an actual $, a \\ for and actual \, \+ for an actual +, and \? for an actual ?. ( ? and + are explained below.) The fgrep Command fgrep is an alternative to grep. The difference is that while grep (the more commonly used command) matches regular expressions, fgrep matches literal strings. In other words you can use fgrep when you would like to search for an ordinary string that is not a regular expression, instead of preceding special characters with \. 5.3 Regular Expression \{ \} Notation x* matches zero to infinite instances of a character x. You can specify other ranges of numbers of characters to be matched with, for example, x\{3,5\}, which will match at least three but not more than five x's, that is xxx, xxxx, or xxxxx. x\{4\} can then be used to match 4 x's exactly: no more and no less. x\{7,\} will match seven or more x's--the upper limit is omitted to mean that there is no maximum number of x's. As in all the examples above, the x can be a range of characters (like [a-k]) just as well as a single charcter. grep -w ‘th[a-t]\{2,3\}t’ Extended Regular Expression + ? \< \> ( ) | Notation with egrep An enhanced version of regular expressions allows for a few more useful features. Where these conflict with existing notation, they are only available through the egrep command. + The following examples should make the last two notations clearer. grep ‘trot’ Jun 13
The following keys are useful for editing the command-line. Note that UNIX has had a long and twisted evolution from the mainframe, and the Home, End and other keys may not work properly. The following keys bindings are however common throughout many LINUX applications: Ctrl-a Your command-line keeps a history of all the commands you have typed in. Ctrl-p and Ctrl-n will cycle through previous commands entered. New users seem to gain tremendous satisfaction from typing in lengthy commands over and over. Never type in anything more than once–use your command history instead. Ctrl-s is used to suspend the current session, causing the keyboard to stop responding. Ctrl-q reverses this condition. Ctrl-r activates a search on your command history. Pressing Ctrl-r in the middle of a search finds the next match whereas Ctrl-s reverts to the previous match (although some distributions have this confused with suspend). The Tab command is tremendously useful for saving key strokes. Typing a partial directory name, file name, or command, and then pressing Tab once or twice in sequence completes the word for you without your having to type it all in full. You can make Tab and other keys stop beeping in the irritating way that they do by editing the file /etc/inputrc and adding the line set bell-style none Jun 13
Yum is software installation tool for Red hat linux and Fedora Linux. It is a complete software management system. Other option is to use up2date utility. yum is designed to use over network/internet. It does not use CDROM to install packages. If you are using fedora you don’t have to install it, it is part of fedora itself. If you don’t have yum then download it from project home page http://linux.duke.edu/projects/yum/download.ptml rpm -ivh yum* Step # 1: Configure yum You need to edit /etc/yum.conf and modify/add following code to it: vi /etc/yum.conf Append or edit code as follows: [base] Save the file Install GPG signature key with rpm command: # rpm –import http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt and other keys too (if any using above command) Step # 2 Update your package list: # yum check-update Step # 3 start to use yum Install a new package called foo # yum install foo To update packages # yum update To update a single package called bar # yum update bar To remove a package called telnet # yum remove telnet To list all packages # yum list installed You can search using grep command # yum list installed | grep samba Display information on a package called foo # yum info foo To display list of packages for which updates are available # yum list updates ————————————– [dag] ————————————— [main] # PUT YOUR REPOS HERE OR IN separate files named file.repo Jun 13
All web servers been connected to the Internet subjected to DoS (Denial of Service) or DDoS (Distrubuted Denial of Service) attacks in some kind or another, where hackers or attackers launch large amount connections consistently and persistently to the server, and in advanced stage, distributed from multiple IP addresses or sources, in the hope to bring down the server or use up all network bandwidth and system resources to deny web pages serving or website not responding to legitimate visitors. You can detect the ddos using the following command netstat -anp|grep tcp|awk ‘{print $5}’| cut -d : -f1|sort|uniq -c|sort -n It will shows the number of connections from all IPs to the server. There are plenty of ways to prevent, stop, fight and kill off DDoS attack, such as using firewall. A low cost, and probably free method is by using software based firewall or filtering service. (D)DoS-Deflate is a free open source Unix/Linux script by MediaLayer that automatically mitigate (D)DoS attacks. It claims to be the best, free, open source solution to protect servers against some of the most excruciating DDoS attacks. (D)DoS-Deflate script basically monitors and tracks the IP addresses are sending and establishing large amount of TCP network connections such as mass emailing, DoS pings, HTTP requests) by using “netstat” command, which is the symptom of a denial of service attack. When it detects number of connections from a single node that exceeds certain preset limit, the script will automatically uses APF or IPTABLES to ban and block the IPs. Depending on the configuration, the banned IP addresses would be unbanned using APF or IPTABLES (only works on APF v 0.96 or better). Installation and setup of (D)DOS-Deflate on the server is extremely easy. Simply login as root by open SSH secure shell access to the server, and run the the following commands one by one: wget http://www.inetbase.com/scripts/ddos/install.sh To uninstall the (D)DOS-Deflate, run the following commands one by one instead: wget http://www.inetbase.com/scripts/ddos/uninstall.ddos The configuration file for (D)DOS-Deflate is ddos.conf, and by default it will have the following values: FREQ=1 Users can change any of these settings to suit the different need or usage pattern of different servers. It’s also possible to whitelist and permanently unblock (never ban) IP addresses by listing them in /usr/local/ddos/ignore.ip.list file. If you plan to execute and run the script interactively, users can set KILL=0 so that any bad IPs detected are not banned Jun 13
What is iptables? iptables is the userspace command line program used to configure the Linux 2.4.x and 2.6.x IPv4 packet filtering ruleset. It is targeted towards system administrators. Since Network Address Translation is also configured from the packet filter ruleset, iptables is used for this, too. The iptables package also includes ip6tables. ip6tables is used for configuring the IPv6 packet filter. iptables requires a kernel that features the ip_tables packet filter. This includes all 2.4.x and 2.6.x kernel releases. * listing the contents of the packet filter ruleset Rules * If you create a set of rules in iptables during one session and then reboot your computer, all the rules that were added will be lost. * If you want the rules to persist, you should put the commands to add them into a startup script. * To check what rules are already implemented: o Type into a terminal window: ComputerName:~# iptables -L Rule Components * There are three basic components to each rule: 1. Where to apply the rule during the process of sending and receiving network traffic (packets). There are three different places, or chains: 1. INPUT: Applies rules to packets being received from the network. 2. What type of effect the rule has, regardless of where it is applied. The 3 effects are: 1. ACCEPT: Accepts a given packet and allows it to pass either in or out. Each chain also has a default policy (usually ACCEPT) that is applied if a specific packet does not match any rules. 3. The location you want to block packets from or going to, usually called the source can be written as either an IP address or a DNS name (such as www.yahoo.com). * Each of these three components are used to create a rule through command line arguments. Back to top Adding a Rule * To add a rule: o Use the argument -A to tell iptables to add a rule to the chain Chain_Name. o Add the source with the option -s . We can also specify a range of IPs with the ‘/’ character (200.200.200.1/24 specifies 200.200.200.*) as well as use the wildcard character ‘*’ (Find further information on t;/##” notation called CIDR blocks). o Specify the desired effect with the -j argument. ComputerName:~# iptables -A INPUT -s 200.200.200.1 -j DROP Chain INPUT (policy ACCEPT) Back to top Removing a Rule * Removing a rule: o Type the argument -D where Rule_Num starts at 1 and counts down from the top of each list of rules. To remove our rule, we simply type in (assuming that the new rule is the first in the list): ComputerName:~# iptables -D INPUT 1 o Now, typing: # iptables -L should show that the rule has been deleted. Back to top Advanced Rule Examples: * There are many other advanced options for these rules, one of the most important of which is the ability to specify what “type” of packets to block by blocking specific ports on which certain services operate. For example, we could specify that we wanted to block only packets going into port 23, named telnet packets, coming into your computer from 200.200.200.1 by writing the rule: ComputerName:~# iptables -A INPUT -s 200.200.200.1 -j DROP -p tcp –destination-port telnet * Other ports can be specified. For a full list of ports being used on your computer and the name or type attached to each, go to your /etc/services file. * Other common ports to block are: o HTTP (port 80) * There are also a wide variety of other command line arguments that can be used, but these simple rules so far introduced allow for a wide variety of applications. ComputerName:~# iptables -A INPUT -j DROP -p tcp –destination-port telnet Since there is no defined source, any telnet request to your computer will be blocked. ComputerName:~# iptables -A INPUT -j DROP -p tcp -i eth1 This rule is not very useful since all incoming ports are blocked. We would not hear any tcp packet replies to our outbound requests, thus rendering our connection for the most part useless. 1. Explicitly accept packets on the port we want to open, and o For the web server example above, the first rule would accept tcp packets on port 80 through eth1 and the second would block all incoming tcp traffic. These two rules are given below: + ComputerName:~# iptables -A INPUT -j ACCEPT -p tcp –destination-port 80 -i eth1 + ComputerName:~# iptables -A INPUT -j DROP -p tcp -i eth1 This combination of rules works because iptables implements the rules in order. When a new incoming tcp packet bound for port 80 arrives, iptables will see the accept rule first and admit the packet before the all-encompassing deny rule takes effect. ComputerName:~# iptables -A INPUT -p tcp –syn -j DROP Since all tcp connections must first be initialized, we can block all incoming packets that take the task of initializing the connection, the SYN tcp packets. This basically tells our computer to ignore anything it did not speak to first. ComputerName:~# iptables -A INPUT -m star –state ESTABLISHED,RELATED -S ACCEPT ComputerName:~# iptables -A INPUT –mac-source 00:0B:DB:45:56:42 -j DROP For more information on other command line options for iptables, please refer to the man page. Jun 13
/etc/fstab consists of a number of lines (one for each filesystem) seperated into six fields. Each field is seperated from the next by whitespace (spaces/tabs). For Example: /dev/hdc /mnt/cdrom iso9660 noauto,ro,user 0 0 The first field (/dev/hdc) is the physical device/remote filesystem which is to be described. The second field (/mnt/cdrom) specifies the mount point where the filesystem will be mounted. The third field (iso9660) is the type of filesystem on the device from the first field. The fourth field (noauto,ro,user) is a (default) list of options which mount should use when mounting the filesystem. The fifth field (0) is used by dump (a backup utility) to decide if a filesystem should be backed up. If zero then dump will ignore that filesystem. The sixth field (0) is used by fsck (the filesystem check utility) to determine the order in which filesystems should be checked. Jun 13
This article will guide you through the installation of Ruby on Rails in a linux machine. As you are aware Ruby on Rails made a splash with its simplicity and ease of use for devoloping web applications. What is Ruby?Ruby is a pure object-oriented programming language with a super clean syntax that makes programming elegant and fun. Ruby successfully combines Smalltalk’s conceptual elegance, Python’s ease of use and learning, and Perl’s pragmatism. Ruby originated in Japan in the early 1990s, and has started to become popular worldwide in the past few years as more English language books and documentation have become available. What is Rails?Rails is an open source Ruby framework for developing database-backed web applications. Rails is designed from the ground up to create dynamic Web sites that use a relational database backend. It adds key words to the Ruby programming language that make Web applications easier to configure. In addition, it’s designed to automatically generate a complete, if somewhat crude, Web application from an existing database schema. The latter is both Ruby’s greatest strength and its Achilles’ heel. Rails makes assumptions about database schema naming conventions that, if followed, make generating a basic Web site a matter of executing single command. Installing the Software on CentOS .1. Install Ruby
# packages in testing [testing] name=CentOS-$releasever - Testing baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
yum update yum install ruby ruby-devel ruby-libs irb rdoc 2. Install Gemcd /usr/local/src wget http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz tar -xvzf rubygems-0.8.11.tgz cd rubygems-0.8.11 ruby setup.rb cd .. 3. Install fast-cgicd /usr/local/src wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz tar xzvf fcgi-2.4.0.tar.gz cd fcgi-2.4.0 ./configure make make install cd .. 4. Install fast-cgi Bindingscd /usr/local/src wget http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz tar zxvf ruby-fcgi-0.8.6.tar.gz cd ruby-fcgi-0.8.6 ruby install.rb config ruby install.rb setup ruby install.rb install cd .. 5. Install Railsgem install rails --include-dependencies Ruby and Rails on Red Hat Enterprise Linux
up2date zlib-devel
To determine which all rpm’s installed rpm -qa | egrep '(ruby)|(irb)' To uninstall the installed ruby rpm’srpm -e ruby-docs-1.8.1-7.EL4.2 \ ruby-1.8.1-7.EL4.2 \ irb-1.8.1-7.EL4.2 \ ruby-libs-1.8.1-7.EL4.2 \ ruby-mode-1.8.1-7.EL4.2 \ ruby-tcltk-1.8.1-7.EL4.2 \ ruby-devel-1.8.1-7.EL4.2 Install Ruby from sourcewget ftp://ftp.ruby-lang.org/pub/ruby/stable/ruby-1.8.4.tar.gz tar xvzf ruby-1.8.4.tar.gz cd ruby-1.8.4 ./configure --prefix=/usr make make install Install Ruby Gemswget http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz tar xvzf rubygems-0.8.11.tgz cd rubygems-0.8.11 ruby setup.rb Install Railscd gem update gem update --system rm `gem env gempath`/source_cache rm -f ~/.gem/source_cache gem update gem install rails --include-dependencies Now configuring mod_fastcgi Apache (1.3) config file httpd.conf 1. Install mod_fcgi modulecurl -O http://fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz or wget http://fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz tar xvfz mod_fastcgi-2.4.2.tar.gz cd mod_fastcgi-2.4.2 /usr/local/apache/bin/apxs -cia mod_fastcgi.c 2. Configuring httpd.confLoadModule fastcgi_module modules/mod_fastcgi.so AddHandler fastcgi-script .fcgi .fcg .fpl service httpd restart 3. Edit the .htaccess filechange /dispatch.cgi to /dispatch.fcgi 4. This server has been upgraded to MySQL 4.1
wget http://www.tmtm.org/en/mysql/ruby/mysql-ruby-2.5.tar.gz tar vxzf mysql-ruby-2.5.tar.gz cd mysql-ruby-2.5 ruby extconf.rb --with-mysql-config=/usr/bin/mysql_config 5. Edit your .htaccess with following entries#Set to development, test, or production
DefaultInitEnv RAILS_ENV production
Options Indexes ExecCGI FollowSymLinks
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
Jun 13
dig is a command-line tool for querying DNS name servers for information about host addresses, mail exchanges, name servers, and related information. The most typical, simplest query is for a single host. By default, however, dig is pretty verbose. You probably don’t need all the information in the default output, but it’s probably worth knowing what it is. Below is an annotated query. This article explains you how to do the data recovery from a crashed windows-plesk server. $ dig www.yahoo.com That’s the command-line invocation of dig I used ; <<>> DiG 9.2.3 <<>> www.yahoo.com The opening section of dig’s output tells us a little about itself (version 9.2.3) and the global options that are set (in this case, printcmd). This part of the output can be quelled by using the +nocmd option, but only if it’s the very first argument on the command line (even preceeding the host you’re querying). ;; Got answer: Here, dig tells us some technical details about the answer received from the DNS server. This section of the output can be toggled using the +[no]comments option—but beware that disabling the comments also turns off many section headers. ;; QUESTION SECTION: In the question section, dig reminds us of our query. The default query is for an Internet address (A). You can turn this output on or off using the +[no]question option. ;; ANSWER SECTION: Finally, we get our answer: the address of www.yahoo.com is 204.152.184.88. I don’t know why you’d ever want to turn off the answer, but you can toggle this section of the output using the +[no]answer option. ;; AUTHORITY SECTION: The authority section tells us what DNS servers can provide an authoritative answer to our query. In this example, yahoo.com has three name servers. You can toggle this section of the output using the +[no]authority option. ;; ADDITIONAL SECTION: The final section of the default output contains statistics about the query; it can be toggled with the +[no]stats option. dig will let you perform any valid DNS query, the most common of which are A (the IP address), TXT (text annotations), MX (mail exchanges), NS name servers, or the omnibus ANY. dig yahoo.com A +noall +answer # get a list of yahoo’s mail servers dig yahoo.com MX +noall +answer # get a list of DNS servers authoritative for yahoo.com dig yahoo.com NS +noall +answer # get all of the above dig yahoo.com ANY +noall +answer #Short answer dig yahoo.com +short #To get the TTL values dig +nocmd yahoo.com mx +noall +short #To get a long answer dig +nocmd yahoo.com any +multiline +noall +answer #To reverselookup dig -x 216.109.112.135 +short To bulk lookups # do full lookups for a number of hostnames #dig -f /path/to/host-list.txt #the same, with more focused output dig -f /path/to/host-list.txt +noall +answer Tracing dig’s path dig yahoo.com +trace How to interpret TTL value If you ask your local DNS server for an Internet address, the server figures out where to find an authoritative answer and then asks for it. Once the server receives an answer, it will keep the answer in a local cache so that if you ask for the same address again a short time later, it can give you the answer quickly rather than searching the Internet for it all over again. When domain administrators configure their DNS records, they decide how long the records should remain in remote caches. This is the TTL number (usually expressed in number of seconds). When domain administrators configure their DNS records, they decide how long the records should remain in remote caches. This is the TTL number (usually expressed in number of seconds). $ dig +nocmd gmail.com MX +noall +answer If you ask a few seconds later, you’ll see the TTL number reduced by approximately the number of seconds you waited to ask again. $ dig +nocmd gmail.com MX +noall +answer If your timing is good, you can catch the record at the very end of its life. $ dig +nocmd gmail.com MX +noall +answer After that, the DNS server you’re querying will “forget” the answer to that question, so the whole cycle will start over again (in this example, at 300 seconds) the next time you perform that query. |
Recent Comments