PHP "PCNTL" Module Recompilation steps :
========================================
Hi,
Please follow the below steps for recompiling "pcntl" Module while exact version of "PCNTL" PHP RPM package not available.
1) Go to PHP Source location
/root/php-5.2.13 or the source path of PHP package.
2) Then navigate to ext directory. This directory having all the php modules.
/root/php-5.2.13/ext/pcntl
3)Then execute "phpize" command in shell . This 'll create the required libries for compilation process.
output
======
[root@admin pcntl]# phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
4)Then Execute the ./configure
[root@admin pcntl]# ./configure
checking for egrep... grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ANSI C... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for PHP prefix... /usr/local
checking for PHP includes... -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/lib/php/extensions/no-debug-non-zts-20060613
checking for PHP installed headers prefix... /usr/local/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... no
configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
checking for gawk... gawk
checking whether to enable pcntl support... yes, shared
checking for fork... yes
checking for waitpid... yes
checking for sigaction... yes
checking for getpriority... yes
checking for setpriority... yes
checking for wait3... yes
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognize dependent libraries... pass_all
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking the maximum length of command line arguments... 98304
checking command to parse /usr/bin/nm -B output from cc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if cc supports -fno-rtti -fno-exceptions... no
checking for cc option to produce PIC... -fPIC
checking if cc PIC flag -fPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
config.status: config.h is unchanged
5)[root@admin pcntl]# make
Build complete.
Don't forget to run 'make test'.
6) make test
Build complete.
Don't forget to run 'make test'.
=====================================================================
PHP : /usr/local/bin/php
PHP_SAPI : cli
PHP_VERSION : 5.2.13
ZEND_VERSION: 2.2.0
PHP_OS : Linux - Linux admin.website.com.tw 2.6.18-164.15.1.el5 #1 SMP Wed Mar 17 11:30:06 EDT 2010 x86_64
INI actual : /root/php-5.2.13/ext/pcntl/tmp-php.ini
More .INIs :
CWD : /root/php-5.2.13/ext/pcntl
Extra dirs :
VALGRIND : Not used
=====================================================================
TIME START 2010-08-18 04:22:01
=====================================================================
PASS Test pcntl wait functionality [tests/001.phpt]
PASS Bug #47566 (return value of pcntl_wexitstatus()) [tests/bug47566.phpt]
PASS Test function pcntl_fork() by calling it with its expected arguments [tests/pcntl_fork_basic.phpt]
PASS Test function pcntl_fork() by testing the process isolation in the forking hierarchy father -> son -> grandson where father can not knows his grandson [tests/pcntl_fork_variation.phpt]
=====================================================================
TIME END 2010-08-18 04:22:03
=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 0
Exts tested : 37
---------------------------------------------------------------------
Number of tests : 4 4
Tests skipped : 0 ( 0.0%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 0 ( 0.0%) ( 0.0%)
Expected fail : 0 ( 0.0%) ( 0.0%)
Tests passed : 4 (100.0%) (100.0%)
---------------------------------------------------------------------
Time taken : 2 seconds
=====================================================================
We would like to send this report automatically to the
PHP QA team, to give us a better understanding of how
the test cases are doing. If you don't want to send it
immediately, you can choose "s" to save the report to
a file that you can send us later.
Do you want to send this report now? [Yns]: y
Please enter your email address.
(Your address will be mangled so that it will not go out on any
mailinglist in plain text):
Posting to qa.php.net /buildtest-process.php
Thank you for helping to make PHP better.
7)Then you can find a file "pcntl.so" under the directory "/usr/lib64/php/modules/"
8)Then go to php source directory "/root/php-5.2.13 " then execute ./ configure command for enabling --enable-pcntl \ module
./ configure --enable-pcntl
./configure --enable-bcmath--enable-calendar--enable-exif--enable-ftp--enable-gd-native-ttf--enable-libxml--enable-magic-quotes--enable-mbstring--enable-sockets--prefix=/usr/local--with-apxs2=/usr/sbin/apxs--with-freetype-dir=/usr--with-gd--with-imap-ssl=/usr--with-jpeg-dir=/usr--with-kerberos--with-libxml-dir=/opt/xml2/--with-mhash=/usr/lib64/--with-curl=/usr/lib64/--with-gettext--with-mcrypt=/opt/libmcrypt/--with-mysql=/usr--with-mysql-sock=/var/lib/mysql/mysql.sock--with-openssl=/usr--with-openssl-dir=/usr--with-png-dir=/usr--with-ttf--with-xpm-dir=/usr/X11R6--with-zlib--with-zlib-dir=/usr--enable-pcntl
Then execute make and make test command.
9) Then add extension entry in php configuration file (php.ini)
vi /etc/php.ini
extension=pcntl.so
10) Restart Apache service
That's it . You can verify the phpmodules by executing the php -m command.
Tuesday, August 17, 2010
Monday, August 2, 2010
Check with the following things for analyzing server hacks in Linux server
Check with the following things for analyzing server hacks in Linux server
==========================================================================
1)Last command
2)Analyze the following logs
============================
apache error log
apache access log
var/log/messages
apache secure log
3) Verify all the ports
Analyze the following files
============================
/etc/userdomains
/etc/shadow
/etc/passwd
.bash history
/root/bash profile
lsattr
==========================================================================
1)Last command
2)Analyze the following logs
============================
apache error log
apache access log
var/log/messages
apache secure log
3) Verify all the ports
Analyze the following files
============================
/etc/userdomains
/etc/shadow
/etc/passwd
.bash history
/root/bash profile
lsattr
Tuesday, July 20, 2010
SSL certificates through cPanel
You can install/manage SSL certificates through cPanel very well. Please go through the following steps.
1.Login into the cPanel with appropriate login credentials.
2.Click "SSL/TLS Manager"
3.Now you can view/modify the "Private key, CSR, Certificates(.CRT)"
4.Then select 'Certificates (CRT) -> Generate, view, upload, or delete SSL certificates'
5.Remove the existing one(please take a copy of the certificate before delete it)
6.Paste your Certificate (.CRT) under the box "Upload a New Certificate -> Paste the crt below:"
7.Click "Upload" button.
Please generate new CSR through cPanel and submit it at your SSL provider to regenerate the certificate and follow the mentioned above steps to install the new SSL certificate.
1.Login into the cPanel with appropriate login credentials.
2.Click "SSL/TLS Manager"
3.Now you can view/modify the "Private key, CSR, Certificates(.CRT)"
4.Then select 'Certificates (CRT) -> Generate, view, upload, or delete SSL certificates'
5.Remove the existing one(please take a copy of the certificate before delete it)
6.Paste your Certificate (.CRT) under the box "Upload a New Certificate -> Paste the crt below:"
7.Click "Upload" button.
Please generate new CSR through cPanel and submit it at your SSL provider to regenerate the certificate and follow the mentioned above steps to install the new SSL certificate.
Thursday, July 8, 2010
Domain migration in Linux server steps
Migration of domain from old server to new server
====================================================
1)Verify the Disk usage of particular account
root@host [/home]# du -sh road/
489M road/
2)Then Run pkgacct script:
root@host [/home]# /scripts/pkgacct road/
pkgacct started.
pkgacct version 8.3 - user : road/ - archive version: 3 - running with uid 0
warn [pkgacct] Invalid username to loadcpuserfile.
Unable to find domain name for road/
root@host [/home]# /scripts/pkgacct road
pkgacct started.
pkgacct version 8.3 - user : road - archive version: 3 - running with uid 0
Copying Reseller Config...Done
Copying Suspension Info (if needed)...Done
Copying SSL Certificates, CSRS, and Keys...Done
Copying Domain Keys....Done
Copying Counter Data....Done
Copying Bandwidth Data.......roadtomakkah.com...Done
Copying Dns Zones.......roadtomakkah.com...Done
Copying Mail files....Done
Copying frontpage files....Done
Copying proftpd file....Done
Copying www logs.............
Done
Copy userdata............
Copy custom virtualhost templates............
Done
Copying mailman lists....Done
Copying mailman archives....Done
Copying homedir.............
.........
.........
.........
.........
.........
Then move the particular file to /usr/local/apache/htdocs
mv cpmove-road.tar.gz /usr/local/apache/htdocs/
Change the cpmove-road.tar.gz ownership to nobody user
3)Using wget command download old server account to the new server
wget http://IP/cpmove-road.tar.gz
Move the downloaded file to home directory
4) Extract the downloaded file using restorepkg script
root@neigh [/home]# /scripts/restorepkg cpmove-road.tar.gz
Using cpmove archive
cPanel restorepkg 2
Force Mode: no
Reseller Privs Restore: yes
Searching /home....
Found cpmove-road.tar.gz !
Extracting tarball...................
5)Then we have to move mysql package
du -sh road_main/
76K road_main/
root@host [/var/lib/mysql]#
root@host [/var/lib/mysql]# mysqldump road_main > road_main.sql
mysqldump: Error: 'Table 'INFORMATION_SCHEMA.FILES' doesn't exist' when trying to dump tablespaces
root@host [/var/lib/mysql]# du -sh road_main.sql
8.0K road_main.sql
root@host [/var/lib/mysql]#
6) Then using server copy we are transfering the new dump file to the new server
scp road_main.sql root@IP:/var/lib/mysql
7)Go to new server and Extract the database using the followuing command
mysql road_main < road_main.sql
Compare the disk usage with the new server. ( This is for just verification )
root@neigh [/var/lib/mysql]# du -sh road_main
76K road_main
root@neigh [/var/lib/mysql]#
8)We have to connect mysql and have to give grant all privileges to Databases
Just Take DB, User information from the configuration file like configuration.php or some other files.
Search that information using the following command
grep databasename -lr *
Then Enter in to the corresponding file and take the corresponding information
########## Database Info ##########
$db_server = 'localhost';
$db_name = 'shopno_smf';
$db_user = 'shopno_admin';
$db_passwd = 'admin';
$db_prefix = 'smf_';
$db_persist = 0;
$db_error_send = 1;
http://forums.mysql.com/read.php?11,240976
9) Then go Mysql prompt and select the particular database
Then give the grant all privileges to the user
GRANT ALL privileges ON DATABASE.* TO user@domain IDENTIFIED BY 'password'
10) Then check with domain functionality using temp URL
http://67.45.34.67/~account_name
====================================================
1)Verify the Disk usage of particular account
root@host [/home]# du -sh road/
489M road/
2)Then Run pkgacct script:
root@host [/home]# /scripts/pkgacct road/
pkgacct started.
pkgacct version 8.3 - user : road/ - archive version: 3 - running with uid 0
warn [pkgacct] Invalid username to loadcpuserfile.
Unable to find domain name for road/
root@host [/home]# /scripts/pkgacct road
pkgacct started.
pkgacct version 8.3 - user : road - archive version: 3 - running with uid 0
Copying Reseller Config...Done
Copying Suspension Info (if needed)...Done
Copying SSL Certificates, CSRS, and Keys...Done
Copying Domain Keys....Done
Copying Counter Data....Done
Copying Bandwidth Data.......roadtomakkah.com...Done
Copying Dns Zones.......roadtomakkah.com...Done
Copying Mail files....Done
Copying frontpage files....Done
Copying proftpd file....Done
Copying www logs.............
Done
Copy userdata............
Copy custom virtualhost templates............
Done
Copying mailman lists....Done
Copying mailman archives....Done
Copying homedir.............
.........
.........
.........
.........
.........
Then move the particular file to /usr/local/apache/htdocs
mv cpmove-road.tar.gz /usr/local/apache/htdocs/
Change the cpmove-road.tar.gz ownership to nobody user
3)Using wget command download old server account to the new server
wget http://IP/cpmove-road.tar.gz
Move the downloaded file to home directory
4) Extract the downloaded file using restorepkg script
root@neigh [/home]# /scripts/restorepkg cpmove-road.tar.gz
Using cpmove archive
cPanel restorepkg 2
Force Mode: no
Reseller Privs Restore: yes
Searching /home....
Found cpmove-road.tar.gz !
Extracting tarball...................
5)Then we have to move mysql package
du -sh road_main/
76K road_main/
root@host [/var/lib/mysql]#
root@host [/var/lib/mysql]# mysqldump road_main > road_main.sql
mysqldump: Error: 'Table 'INFORMATION_SCHEMA.FILES' doesn't exist' when trying to dump tablespaces
root@host [/var/lib/mysql]# du -sh road_main.sql
8.0K road_main.sql
root@host [/var/lib/mysql]#
6) Then using server copy we are transfering the new dump file to the new server
scp road_main.sql root@IP:/var/lib/mysql
7)Go to new server and Extract the database using the followuing command
mysql road_main < road_main.sql
Compare the disk usage with the new server. ( This is for just verification )
root@neigh [/var/lib/mysql]# du -sh road_main
76K road_main
root@neigh [/var/lib/mysql]#
8)We have to connect mysql and have to give grant all privileges to Databases
Just Take DB, User information from the configuration file like configuration.php or some other files.
Search that information using the following command
grep databasename -lr *
Then Enter in to the corresponding file and take the corresponding information
########## Database Info ##########
$db_server = 'localhost';
$db_name = 'shopno_smf';
$db_user = 'shopno_admin';
$db_passwd = 'admin';
$db_prefix = 'smf_';
$db_persist = 0;
$db_error_send = 1;
http://forums.mysql.com/read.php?11,240976
9) Then go Mysql prompt and select the particular database
Then give the grant all privileges to the user
GRANT ALL privileges ON DATABASE.* TO user@domain IDENTIFIED BY 'password'
10) Then check with domain functionality using temp URL
http://67.45.34.67/~account_name
Saturday, July 3, 2010
Building a LAMP Server
Building a LAMP Server
by Bruce Timberlake
This document will walk you through the installation of what is known as a "LAMP" system: Linux, Apache, MySQL and PHP. Depending on who you talk to, the P also stands for Perl or Python, but in general, it is assumed to be PHP. I run CentOS on my servers; these directions were written for CentOS/Red Hat/Fedora. I have had requests for SuSE (another RPM-based distribution) as well as Debian-based systems, so I will work on variants of these directions for those distributions in the future (donations might help speed that process up!). The main difference between the distributions is in the paths to the startup scripts. Red Hat systems used /etc/rc.d/init.d and SuSE uses /etc/init.d.
I have my first translation! Belorussian provided by Patricia -- thank you very much!
If you need an SSL-enabled server, I have a LAMP with SSL howto as well.
I designed this document so you can just copy/paste each line or block of commands into your shell session and it will "just work" for you. This avoids tedious typing, and the inevitable typos or missed steps that result. These commands work properly via copy/paste. If you are having problems and you are not using copy/paste, please re-check your typing before sending me an email saying "It doesn't work."
Text in a "command" box like this one is a literal Linux commandline, and should be typed or pasted exactly as written.
One note: many many people have followed these directions as written, and have not had any problems.
If you are having a problem, chances are it's something you are doing (or not doing), something different
about your computer, etc.
It is probably NOT this procedure. :)
Initial Steps
PLEASE BE AWARE THAT A SOURCE-BASED INSTALLATION LIKE THIS ONE IS NOT NEEDED FOR A BASIC LAMP SERVER! You should only be doing a source-based installation if you need to alter settings in one or more components of the LAMP stack (e.g., you need a feature in PHP that isn't in the default RPM). If you are just getting started with LAMP, use the binaries provided by your distribution - it is much simpler, and a lot easier to upgrade later.
Most out-of-the-box Red Hat Linux installations will have one or more of the LAMP components installed via RPM files. I personally believe in installing things like this from source, so I get the most control over what's compiled in, what's left out, etc. But source code installs can wreak havoc if overlaid on top of RPM installs, as the two most likely won't share the same directories, etc.
If you have not yet installed your Linux OS, or just for future reference, do not choose to install Apache, PHP, or MySQL during the system installation. Then you can immediately proceed with the source-based install listed here.
Note: to install applications from source code, you will need a C++ compiler (gcc++) installed. This is generally taken care of, but I've had enough queries about it that I've added this note to avoid getting more! You can use your distribution's install CDs to get the proper version of the compiler. Or, if you are using an RPM based distro, you can use a site like http://www.rpmfind.net/ to locate the correct RPM version for your system. (You will obviously not be able to use/rebuild a source RPM to get the compiler installed, as you need the compiler to build the final binary RPM!) On a Fedora system, you can do this command:
su - root
yum install gcc gcc-c++
Log in as root
Because we will be installing software to directories that "regular" users don't have write access to, and also possibly uninstalling RPM versions of some applications, we'll log in as root. The only steps that need root access are the actual installation steps, but by doing the configure and make steps as root, the source code will also be inaccessible to "regular" users.
If you do not have direct access (via keyboard) to the server, PLEASE use Secure Shell (SSH) to access the server and not telnet!! Whenever you use telnet (or plain FTP for that matter), you are transmitting your username, password, and all session information in "plain text". This means that anyone who can access a machine someplace between your PC and your server can snoop your session and get your info. Use encryption wherever possible!
su - root
Remove RPM Versions of the Applications
Before we start with our source code install, we need to remove all the existing RPM files for these products. To find out what RPMs are already installed, use the RPM query command:
rpm -qa
in conjunction with grep to filter your results:
rpm -qa | grep -i apache
rpm -qa | grep -i httpd
rpm -qa | grep -i php
rpm -qa | grep -i mysql
The 'httpd' search is in case you have Apache2 installed via RPM.
To remove the RPMs generated by these commands, do
rpm -e filename
for each RPM you found in the query. If you have any content in your MySQL database already, the RPM removal step should not delete the database files. When you reinstall MySQL, you should be able to move all those files to your new MySQL data directory and have access to them all again.
Get the Source Code for all Applications
We want to put all our source code someplace central, so it's not getting mixed up in someone's home directory, etc.
cd /usr/local/src
One way application source code is distributed is in what are known as "tarballs." The tar command is usually associated with making tape backups - tar stands for Tape ARchive. It's also a handy way to pack up multiple files for easy distribution. Use the man tar command to learn more about how to use this very flexible tool.
At the time of updating this, the current versions of all the components we'll use are:
MySQL - 4.1.22
Apache - 1.3.37
PHP - 4.4.6
Please note: these are the only versions of these that I have set up myself, and verified these steps against. If you use another version of any component, especially a newer version, this HOWTO may not be accurate, and I won't be able to provide free support under those circumstances. Paid support and assistance is always available however.
wget http://www.php.net/distributions/php-4.4.6.tar.gz
wget http://apache.oregonstate.edu/httpd/apache_1.3.37.tar.gz
There may be an Apache mirror closer to you - check their mirror page for other sources. Then insert the URL you get in place of the above for the wget command.
For MySQL, go to http://www.mysql.com/ and choose an appropriate mirror to get the newest MySQL version (v4.1.22).
Unpack the Source Code
tar zxf php-4.4.6.tar.gz
tar zxf apache_1.3.37.tar.gz
tar zxf mysql-4.1.22.tar.gz
This should leave you with the following directories:
/usr/local/src/php-4.4.6
/usr/local/src/apache_1.3.37
/usr/local/src/mysql-4.1.22
Build and Install MySQL
First, we create the group and user that "owns" MySQL. For security purposes, we don't want MySQL running as root on the system. To be able to easily identify MySQL processes in top or a ps list, we'll make a user and group named mysql:
groupadd mysql
useradd -g mysql -c "MySQL Server" mysql
If you get any messages about the group or user already existing, that's fine. The goal is just to make sure we have them on the system.
What the useradd command is doing is creating a user mysql in the group mysql with the "name" of MySQL Server. This way when it's showed in various user and process watching apps, you'll be able to tell what it is right away.
Now we'll change to the "working" directory where the source code is, change the file 'ownership' for the source tree (this prevents build issues in reported in some cases where the packager's username was included on the source and you aren't using the exact same name to compile with!) and start building.
The configure command has many options you can specify. I have listed some fairly common ones; if you'd like to see others, do:
./configure --help | less
to see them all. Read the documentation on the MySQL website for a more detailed explanation of each option.
cd /usr/local/src/mysql-4.1.22
chown -R root.root *
make clean
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--disable-maintainer-mode \
--with-mysqld-user=mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--without-comment \
--without-debug \
--without-bench
18-Jul-2005: If you are installing MySQL 4.0.x on Fedora Core 4, there is a problem with LinuxThreads that prevents MySQL from compiling properly. Installing on Fedora Core 3 works fine though. Thanks to Kevin Spencer for bringing this to my attention. There is a workaround listed at http://bugs.mysql.com/bug.php?id=9497. Thanks to Collin Campbell for that link. Another solution can be found at http://bugs.mysql.com/bug.php?id=2173. Thanks to Kaloyan Raev for that one.
Now comes the long part, where the source code is actually compiled and then installed. Plan to get some coffee or take a break while this step runs. It could be 10-15 minutes or more, depending on your system's free memory, load average, etc.
make && make install
Configure MySQL
MySQL is "installed" but we have a few more steps until it's actually "done" and ready to start. First run the script which actually sets up MySQL's internal database (named, oddly enough, mysql).
./scripts/mysql_install_db
Then we want to set the proper ownership for the MySQL directories and data files, so that only MySQL (and root) can do anything with them.
chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
Copy the default configuration file for the expected size of the database (small, medium, large, huge)
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
If you get an error message about the data directory not existing, etc., something went wrong in the mysql_install_db step above. Go back and review that; make sure you didn't get some sort of error message when you ran it, etc.
Now we have to tell the system where to find some of the dynamic libraries that MySQL will need to run. We use dynamic libraries instead of static to keep the memory usage of the MySQL program itself to a minimum.
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
Now create a startup script, which enables MySQL auto-start each time your server is restarted.
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
/sbin/chkconfig --level 3 mysql on
Then set up symlinks for all the MySQL binaries, so they can be run from anyplace without having to include/specify long paths, etc.
cd /usr/local/mysql/bin
for file in *; do ln -s /usr/local/mysql/bin/$file /usr/bin/$file; done
MySQL Security Issues
First, we will assume that only applications on the same server will be allowed to access the database (i.e., not a program running on a physically separate server). So we'll tell MySQL not to even listen on port 3306 for TCP connections like it does by default.
Edit /etc/my.cnf and uncomment the
skip-networking
line (delete the leading #).
For more security info, check out this MySQL security tutorial.
Start MySQL
First, test the linked copy of the startup script in the normal server runlevel start directory, to make sure the symlink was properly set up:
cd ~
/etc/rc.d/rc3.d/S90mysql start
If you ever want to manually start or stop the MySQL server, use these commands:
/etc/rc.d/init.d/mysql start
/etc/rc.d/init.d/mysql stop
Let's "test" the install to see what version of MySQL we're running now:
mysqladmin version
It should answer back with the version we've just installed...
Now we'll set a password for the MySQL root user (note that the MySQL root user is not the same as the system root user, and definitely should not have the same password as the system root user!).
mysqladmin -u root password new-password
(obviously, insert your own password in the above command instead of the "new-password" string!)
You're done! MySQL is now installed and running on your server. It is highly recommended that you read about MySQL security and lock down your server as much as possible. The MySQL site has info at http://www.mysql.com/doc/en/Privilege_system.html.
Test MySQL
To run a quick test, use the command line program mysql:
mysql -u root -p
and enter your new root user password when prompted. You will then see the MySQL prompt:
mysql>
First, while we're in here, we'll take care of another security issue and delete the sample database test and all default accounts except for the MySQL root user. Enter each of these lines at the mysql> prompt:
drop database test;
use mysql;
delete from db;
delete from user where not (host="localhost" and user="root");
flush privileges;
As another security measure, I like to change the MySQL administrator account name from root to something harder to guess. This will make it that much harder for someone who gains shell access to your server to take control of MySQL.
MAKE SURE YOU REMEMBER THIS NEW NAME, AND USE IT WHEREVER
YOU SEE "root" IN OTHER DIRECTIONS, WEBSITES, ETC.
ONCE YOU DO THIS STEP, THE USERNAME "root" WILL CEASE TO
EXIST IN YOUR MYSQL CONFIGURATION!
update user set user="sqladmin" where user="root";
flush privileges;
Now, on with the "standard" testing... First, create a new database:
create database foo;
You should see the result:
Query OK, 1 row affected (0.04 sec)
mysql>
Delete the database:
drop database foo;
You should see the result:
Query OK, 0 rows affected (0.06 sec)
mysql>
To exit from mysql enter \q:
\q
Build and Install Apache (with DSO support)
The advantage to building Apache with support for dynamically loaded modules is that in the future, you can add functionality to your webserver by just compiling and installing modules, and restarting the webserver. If the features were compiled into Apache, you would need to rebuild Apache from scratch every time you wanted to add or update a module (like PHP). Your Apache binary is also smaller, which means more efficient memory usage.
The downside to dynamic modules is a slight performance hit compared to having the modules compiled in.
cd /usr/local/src/apache_1.3.37
make clean
./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so
make && make install
Build and Install PHP
This section has only been tested with PHP v4.x. If you are trying to build PHP 5.x, I do not have experience with this yet, and do not provide free support for you to get it working. Please note that there are many options which can be selected when compiling PHP. Some will have library dependencies, meaning certain software may need to be already installed on your server before you start building PHP. You can use the command
./configure --help | less
once you change into the PHP source directory. This will show you a list of all possible configuration switches. For more information on what these switches are, please check the PHP website documentation.
cd /usr/local/src/php-4.4.6
./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--disable-debug \
--enable-ftp \
--enable-inline-optimization \
--enable-magic-quotes \
--enable-mbstring \
--enable-mm=shared \
--enable-safe-mode \
--enable-track-vars \
--enable-trans-sid \
--enable-wddx=shared \
--enable-xml \
--with-dom \
--with-gd \
--with-gettext \
--with-mysql=/usr/local/mysql \
--with-regex=system \
--with-xml \
--with-zlib-dir=/usr/lib
make && make install
cp php.ini-dist /usr/local/lib/php.ini
I like to keep my config files all together in /etc. I set up a symbolic link like this:
ln -s /usr/local/lib/php.ini /etc/php.ini
Then I can just open /etc/php.ini in my editor to make changes.
Recommended reading on securing your PHP installation is this article at SecurityFocus.com.
Edit the Apache Configuration File (httpd.conf)
I like to keep all my configuration files together in /etc, so I set up a symbolic link from the actual location to /etc:
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
Now open /etc/httpd.conf in your favorite text editor, and set all the basic Apache options in accordance with the official Apache instructions (beyond the scope of this HOWTO).
Also recommended is the article on securing Apache.
To ensure your PHP files are properly interpreted, and not just downloaded as text files, remove the # at the beginning of the lines which read:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
If the AddType lines above don't exist, manually enter them (without the leading # of course) after the line
AddType application/x-tar .tgz
or anyplace within the section of httpd.conf.
If you wish to use other/additional extensions/filetypes for your PHP scripts instead of just .php, add them to the AddType directive:
AddType application/x-httpd-php .php .foo
AddType application/x-httpd-php-source .phps .phtmls
An example: if you wanted every single HTML page to be parsed and processed like a PHP script, just add .htm and .html:
AddType application/x-httpd-php .php .htm .html
There will be a bit of a performance loss if every single HTML page is being checked for PHP code even if it doesn't contain any. But if you want to use PHP but be "stealthy" about it, you can use this trick.
Add index.php to the list of valid Directory Index files so that your "default page" in a directory can be named index.php.
DirectoryIndex index.php index.htm index.html
You can add anything else you want here too. If you want foobar.baz to be a valid directory index page, just add the .baz filetype to the AddType line, and add foobar.baz to the DirectoryIndex line.
Start Apache
We want to set Apache up with a normal start/stop script in /etc/rc.d/init.d so it can be auto-started and controlled like other system daemons. Set up a symbolic link for the apachectl utility (installed automatically as part of Apache):
ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
Then set up auto-start for runlevel 3 (where the server will go by default):
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S90apache
Then start the daemon:
/etc/rc.d/init.d/apache start
You can check that it's running properly by doing:
ps -ef
and look for the httpd processes.
by Bruce Timberlake
This document will walk you through the installation of what is known as a "LAMP" system: Linux, Apache, MySQL and PHP. Depending on who you talk to, the P also stands for Perl or Python, but in general, it is assumed to be PHP. I run CentOS on my servers; these directions were written for CentOS/Red Hat/Fedora. I have had requests for SuSE (another RPM-based distribution) as well as Debian-based systems, so I will work on variants of these directions for those distributions in the future (donations might help speed that process up!). The main difference between the distributions is in the paths to the startup scripts. Red Hat systems used /etc/rc.d/init.d and SuSE uses /etc/init.d.
I have my first translation! Belorussian provided by Patricia -- thank you very much!
If you need an SSL-enabled server, I have a LAMP with SSL howto as well.
I designed this document so you can just copy/paste each line or block of commands into your shell session and it will "just work" for you. This avoids tedious typing, and the inevitable typos or missed steps that result. These commands work properly via copy/paste. If you are having problems and you are not using copy/paste, please re-check your typing before sending me an email saying "It doesn't work."
Text in a "command" box like this one is a literal Linux commandline, and should be typed or pasted exactly as written.
One note: many many people have followed these directions as written, and have not had any problems.
If you are having a problem, chances are it's something you are doing (or not doing), something different
about your computer, etc.
It is probably NOT this procedure. :)
Initial Steps
PLEASE BE AWARE THAT A SOURCE-BASED INSTALLATION LIKE THIS ONE IS NOT NEEDED FOR A BASIC LAMP SERVER! You should only be doing a source-based installation if you need to alter settings in one or more components of the LAMP stack (e.g., you need a feature in PHP that isn't in the default RPM). If you are just getting started with LAMP, use the binaries provided by your distribution - it is much simpler, and a lot easier to upgrade later.
Most out-of-the-box Red Hat Linux installations will have one or more of the LAMP components installed via RPM files. I personally believe in installing things like this from source, so I get the most control over what's compiled in, what's left out, etc. But source code installs can wreak havoc if overlaid on top of RPM installs, as the two most likely won't share the same directories, etc.
If you have not yet installed your Linux OS, or just for future reference, do not choose to install Apache, PHP, or MySQL during the system installation. Then you can immediately proceed with the source-based install listed here.
Note: to install applications from source code, you will need a C++ compiler (gcc++) installed. This is generally taken care of, but I've had enough queries about it that I've added this note to avoid getting more! You can use your distribution's install CDs to get the proper version of the compiler. Or, if you are using an RPM based distro, you can use a site like http://www.rpmfind.net/ to locate the correct RPM version for your system. (You will obviously not be able to use/rebuild a source RPM to get the compiler installed, as you need the compiler to build the final binary RPM!) On a Fedora system, you can do this command:
su - root
yum install gcc gcc-c++
Log in as root
Because we will be installing software to directories that "regular" users don't have write access to, and also possibly uninstalling RPM versions of some applications, we'll log in as root. The only steps that need root access are the actual installation steps, but by doing the configure and make steps as root, the source code will also be inaccessible to "regular" users.
If you do not have direct access (via keyboard) to the server, PLEASE use Secure Shell (SSH) to access the server and not telnet!! Whenever you use telnet (or plain FTP for that matter), you are transmitting your username, password, and all session information in "plain text". This means that anyone who can access a machine someplace between your PC and your server can snoop your session and get your info. Use encryption wherever possible!
su - root
Remove RPM Versions of the Applications
Before we start with our source code install, we need to remove all the existing RPM files for these products. To find out what RPMs are already installed, use the RPM query command:
rpm -qa
in conjunction with grep to filter your results:
rpm -qa | grep -i apache
rpm -qa | grep -i httpd
rpm -qa | grep -i php
rpm -qa | grep -i mysql
The 'httpd' search is in case you have Apache2 installed via RPM.
To remove the RPMs generated by these commands, do
rpm -e filename
for each RPM you found in the query. If you have any content in your MySQL database already, the RPM removal step should not delete the database files. When you reinstall MySQL, you should be able to move all those files to your new MySQL data directory and have access to them all again.
Get the Source Code for all Applications
We want to put all our source code someplace central, so it's not getting mixed up in someone's home directory, etc.
cd /usr/local/src
One way application source code is distributed is in what are known as "tarballs." The tar command is usually associated with making tape backups - tar stands for Tape ARchive. It's also a handy way to pack up multiple files for easy distribution. Use the man tar command to learn more about how to use this very flexible tool.
At the time of updating this, the current versions of all the components we'll use are:
MySQL - 4.1.22
Apache - 1.3.37
PHP - 4.4.6
Please note: these are the only versions of these that I have set up myself, and verified these steps against. If you use another version of any component, especially a newer version, this HOWTO may not be accurate, and I won't be able to provide free support under those circumstances. Paid support and assistance is always available however.
wget http://www.php.net/distributions/php-4.4.6.tar.gz
wget http://apache.oregonstate.edu/httpd/apache_1.3.37.tar.gz
There may be an Apache mirror closer to you - check their mirror page for other sources. Then insert the URL you get in place of the above for the wget command.
For MySQL, go to http://www.mysql.com/ and choose an appropriate mirror to get the newest MySQL version (v4.1.22).
Unpack the Source Code
tar zxf php-4.4.6.tar.gz
tar zxf apache_1.3.37.tar.gz
tar zxf mysql-4.1.22.tar.gz
This should leave you with the following directories:
/usr/local/src/php-4.4.6
/usr/local/src/apache_1.3.37
/usr/local/src/mysql-4.1.22
Build and Install MySQL
First, we create the group and user that "owns" MySQL. For security purposes, we don't want MySQL running as root on the system. To be able to easily identify MySQL processes in top or a ps list, we'll make a user and group named mysql:
groupadd mysql
useradd -g mysql -c "MySQL Server" mysql
If you get any messages about the group or user already existing, that's fine. The goal is just to make sure we have them on the system.
What the useradd command is doing is creating a user mysql in the group mysql with the "name" of MySQL Server. This way when it's showed in various user and process watching apps, you'll be able to tell what it is right away.
Now we'll change to the "working" directory where the source code is, change the file 'ownership' for the source tree (this prevents build issues in reported in some cases where the packager's username was included on the source and you aren't using the exact same name to compile with!) and start building.
The configure command has many options you can specify. I have listed some fairly common ones; if you'd like to see others, do:
./configure --help | less
to see them all. Read the documentation on the MySQL website for a more detailed explanation of each option.
cd /usr/local/src/mysql-4.1.22
chown -R root.root *
make clean
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--disable-maintainer-mode \
--with-mysqld-user=mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--without-comment \
--without-debug \
--without-bench
18-Jul-2005: If you are installing MySQL 4.0.x on Fedora Core 4, there is a problem with LinuxThreads that prevents MySQL from compiling properly. Installing on Fedora Core 3 works fine though. Thanks to Kevin Spencer for bringing this to my attention. There is a workaround listed at http://bugs.mysql.com/bug.php?id=9497. Thanks to Collin Campbell for that link. Another solution can be found at http://bugs.mysql.com/bug.php?id=2173. Thanks to Kaloyan Raev for that one.
Now comes the long part, where the source code is actually compiled and then installed. Plan to get some coffee or take a break while this step runs. It could be 10-15 minutes or more, depending on your system's free memory, load average, etc.
make && make install
Configure MySQL
MySQL is "installed" but we have a few more steps until it's actually "done" and ready to start. First run the script which actually sets up MySQL's internal database (named, oddly enough, mysql).
./scripts/mysql_install_db
Then we want to set the proper ownership for the MySQL directories and data files, so that only MySQL (and root) can do anything with them.
chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
Copy the default configuration file for the expected size of the database (small, medium, large, huge)
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
If you get an error message about the data directory not existing, etc., something went wrong in the mysql_install_db step above. Go back and review that; make sure you didn't get some sort of error message when you ran it, etc.
Now we have to tell the system where to find some of the dynamic libraries that MySQL will need to run. We use dynamic libraries instead of static to keep the memory usage of the MySQL program itself to a minimum.
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
Now create a startup script, which enables MySQL auto-start each time your server is restarted.
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
/sbin/chkconfig --level 3 mysql on
Then set up symlinks for all the MySQL binaries, so they can be run from anyplace without having to include/specify long paths, etc.
cd /usr/local/mysql/bin
for file in *; do ln -s /usr/local/mysql/bin/$file /usr/bin/$file; done
MySQL Security Issues
First, we will assume that only applications on the same server will be allowed to access the database (i.e., not a program running on a physically separate server). So we'll tell MySQL not to even listen on port 3306 for TCP connections like it does by default.
Edit /etc/my.cnf and uncomment the
skip-networking
line (delete the leading #).
For more security info, check out this MySQL security tutorial.
Start MySQL
First, test the linked copy of the startup script in the normal server runlevel start directory, to make sure the symlink was properly set up:
cd ~
/etc/rc.d/rc3.d/S90mysql start
If you ever want to manually start or stop the MySQL server, use these commands:
/etc/rc.d/init.d/mysql start
/etc/rc.d/init.d/mysql stop
Let's "test" the install to see what version of MySQL we're running now:
mysqladmin version
It should answer back with the version we've just installed...
Now we'll set a password for the MySQL root user (note that the MySQL root user is not the same as the system root user, and definitely should not have the same password as the system root user!).
mysqladmin -u root password new-password
(obviously, insert your own password in the above command instead of the "new-password" string!)
You're done! MySQL is now installed and running on your server. It is highly recommended that you read about MySQL security and lock down your server as much as possible. The MySQL site has info at http://www.mysql.com/doc/en/Privilege_system.html.
Test MySQL
To run a quick test, use the command line program mysql:
mysql -u root -p
and enter your new root user password when prompted. You will then see the MySQL prompt:
mysql>
First, while we're in here, we'll take care of another security issue and delete the sample database test and all default accounts except for the MySQL root user. Enter each of these lines at the mysql> prompt:
drop database test;
use mysql;
delete from db;
delete from user where not (host="localhost" and user="root");
flush privileges;
As another security measure, I like to change the MySQL administrator account name from root to something harder to guess. This will make it that much harder for someone who gains shell access to your server to take control of MySQL.
MAKE SURE YOU REMEMBER THIS NEW NAME, AND USE IT WHEREVER
YOU SEE "root" IN OTHER DIRECTIONS, WEBSITES, ETC.
ONCE YOU DO THIS STEP, THE USERNAME "root" WILL CEASE TO
EXIST IN YOUR MYSQL CONFIGURATION!
update user set user="sqladmin" where user="root";
flush privileges;
Now, on with the "standard" testing... First, create a new database:
create database foo;
You should see the result:
Query OK, 1 row affected (0.04 sec)
mysql>
Delete the database:
drop database foo;
You should see the result:
Query OK, 0 rows affected (0.06 sec)
mysql>
To exit from mysql enter \q:
\q
Build and Install Apache (with DSO support)
The advantage to building Apache with support for dynamically loaded modules is that in the future, you can add functionality to your webserver by just compiling and installing modules, and restarting the webserver. If the features were compiled into Apache, you would need to rebuild Apache from scratch every time you wanted to add or update a module (like PHP). Your Apache binary is also smaller, which means more efficient memory usage.
The downside to dynamic modules is a slight performance hit compared to having the modules compiled in.
cd /usr/local/src/apache_1.3.37
make clean
./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so
make && make install
Build and Install PHP
This section has only been tested with PHP v4.x. If you are trying to build PHP 5.x, I do not have experience with this yet, and do not provide free support for you to get it working. Please note that there are many options which can be selected when compiling PHP. Some will have library dependencies, meaning certain software may need to be already installed on your server before you start building PHP. You can use the command
./configure --help | less
once you change into the PHP source directory. This will show you a list of all possible configuration switches. For more information on what these switches are, please check the PHP website documentation.
cd /usr/local/src/php-4.4.6
./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--disable-debug \
--enable-ftp \
--enable-inline-optimization \
--enable-magic-quotes \
--enable-mbstring \
--enable-mm=shared \
--enable-safe-mode \
--enable-track-vars \
--enable-trans-sid \
--enable-wddx=shared \
--enable-xml \
--with-dom \
--with-gd \
--with-gettext \
--with-mysql=/usr/local/mysql \
--with-regex=system \
--with-xml \
--with-zlib-dir=/usr/lib
make && make install
cp php.ini-dist /usr/local/lib/php.ini
I like to keep my config files all together in /etc. I set up a symbolic link like this:
ln -s /usr/local/lib/php.ini /etc/php.ini
Then I can just open /etc/php.ini in my editor to make changes.
Recommended reading on securing your PHP installation is this article at SecurityFocus.com.
Edit the Apache Configuration File (httpd.conf)
I like to keep all my configuration files together in /etc, so I set up a symbolic link from the actual location to /etc:
ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
Now open /etc/httpd.conf in your favorite text editor, and set all the basic Apache options in accordance with the official Apache instructions (beyond the scope of this HOWTO).
Also recommended is the article on securing Apache.
To ensure your PHP files are properly interpreted, and not just downloaded as text files, remove the # at the beginning of the lines which read:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
If the AddType lines above don't exist, manually enter them (without the leading # of course) after the line
AddType application/x-tar .tgz
or anyplace within the
If you wish to use other/additional extensions/filetypes for your PHP scripts instead of just .php, add them to the AddType directive:
AddType application/x-httpd-php .php .foo
AddType application/x-httpd-php-source .phps .phtmls
An example: if you wanted every single HTML page to be parsed and processed like a PHP script, just add .htm and .html:
AddType application/x-httpd-php .php .htm .html
There will be a bit of a performance loss if every single HTML page is being checked for PHP code even if it doesn't contain any. But if you want to use PHP but be "stealthy" about it, you can use this trick.
Add index.php to the list of valid Directory Index files so that your "default page" in a directory can be named index.php.
DirectoryIndex index.php index.htm index.html
You can add anything else you want here too. If you want foobar.baz to be a valid directory index page, just add the .baz filetype to the AddType line, and add foobar.baz to the DirectoryIndex line.
Start Apache
We want to set Apache up with a normal start/stop script in /etc/rc.d/init.d so it can be auto-started and controlled like other system daemons. Set up a symbolic link for the apachectl utility (installed automatically as part of Apache):
ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
Then set up auto-start for runlevel 3 (where the server will go by default):
ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S90apache
Then start the daemon:
/etc/rc.d/init.d/apache start
You can check that it's running properly by doing:
ps -ef
and look for the httpd processes.
Thursday, July 1, 2010
Basic commands in linux
1)ls
2)cp
3)mv
4)ps
5)top
6)top
7)netstat
8)tar
9)pstree
10)iptables
11)lsof
12)kill
13)fuser
14)useradd
15)groupadd
16)usermod
17)dig
18)wget
19)nmap
20)host
21)nslookup
22)stat
23)chattr
24)lsattr
25)chmod
26)chown
27)xorgs
28)watch
29)mount
30)umount
31)traceroute
32)grep
33)awk
34)sed
35)head
36)tail
37)sort
38)uniq
39)cut
40)nmap
41)ip
42)ln
43)vi
44)more
45)rm
2)cp
3)mv
4)ps
5)top
6)top
7)netstat
8)tar
9)pstree
10)iptables
11)lsof
12)kill
13)fuser
14)useradd
15)groupadd
16)usermod
17)dig
18)wget
19)nmap
20)host
21)nslookup
22)stat
23)chattr
24)lsattr
25)chmod
26)chown
27)xorgs
28)watch
29)mount
30)umount
31)traceroute
32)grep
33)awk
34)sed
35)head
36)tail
37)sort
38)uniq
39)cut
40)nmap
41)ip
42)ln
43)vi
44)more
45)rm
Useful Guide to Learn and Evaluate windows 2008
Useful Guide to Learn and Evaluate windows 2008
http://www.microsoft.com/downloads/details.aspx?FamilyID=518d870c-fa3e-4f6a-97f5-acaf31de6dce&displaylang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=518d870c-fa3e-4f6a-97f5-acaf31de6dce&displaylang=en
Removing zombie process from server.
Hi,
I have got a solution for removing zombie process on servers. We neither
need to restart the server nor run script to do this all we have to do is
just run the following command.
ps -el | grep 'Z'
The output of the above command will be something like this
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 Z 0 668 4243 0 78 0 - 0 exit ? 00:09:39 VV
4 Z 0 1403 4243 0 78 0 - 0 exit ? 00:08:11 VV
4 Z 0 1613 4243 0 78 0 - 0 exit ? 00:09:43 VV
4 Z 0 2202 4243 0 78 0 - 0 exit ? 00:09:25 VV
4 Z 0 2382 4243 0 82 0 - 0 exit ? 00:08:07 VV
4 Z 0 2618 4243 0 78 0 - 0 exit ? 00:09:52 VV
4 Z 0 2714 4243 0 77 0 - 0 exit ? 00:09:51 VV
4 Z 0 2741 4243 0 78 0 - 0 exit ? 00:09:18 VV
4 Z 0 2956 4243 0 76 0 - 0 exit ? 00:07:41 VV
4 Z 0 3030 4243 0 75 0 - 0 exit ? 00:00:06 VV
4 Z 0 3125 4243 0 83 0 - 0 exit ? 00:08:09 VV
4 Z 0 3260 4243 0 83 0 - 0 exit ? 00:09:02 VV
4 Z 0 3480 4243 0 77 0 - 0 exit ? 00:09:37 VV
4 Z 0 4151 4243 0 76 0 - 0 exit ? 00:08:49 VV
4 Z 0 4899 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 5099 4243 0 81 0 - 0 exit ? 00:09:32 VV
4 Z 0 5667 4243 0 76 0 - 0 exit ? 00:07:58 VV
4 Z 0 5778 4243 0 78 0 - 0 exit ? 00:09:40 VV
4 Z 0 5956 4243 0 82 0 - 0 exit ? 00:10:19 VV
4 Z 0 7035 4243 0 80 0 - 0 exit ? 00:10:04 VV
4 Z 0 7448 4243 0 83 0 - 0 exit ? 00:08:23 VV
4 Z 0 7757 4243 0 83 0 - 0 exit ? 00:10:06 VV
4 Z 0 8219 4243 0 82 0 - 0 exit ? 00:10:11 VV
4 Z 0 8262 4243 0 76 0 - 0 exit ? 00:07:55 VV
4 Z 0 8631 4243 0 76 0 - 0 exit ? 00:05:57 VV
4 Z 0 8728 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 8944 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 9431 4243 0 80 0 - 0 exit ? 00:09:57 VV
4 Z 0 9577 4243 0 83 0 - 0 exit ? 00:09:00 VV
4 Z 0 9762 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 10263 4243 0 76 0 - 0 exit ? 00:07:57 VV
4 Z 0 10960 4243 0 83 0 - 0 exit ? 00:08:13 VV
4 Z 0 11526 4243 0 78 0 - 0 exit ? 00:10:08 VV
4 Z 0 11952 4243 0 78 0 - 0 exit ? 00:08:05 VV
4 Z 0 13339 4243 0 78 0 - 0 exit ? 00:08:12 VV
4 Z 0 14776 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 15016 4243 0 83 0 - 0 exit ? 00:08:09 VV
4 Z 0 15163 4243 0 76 0 - 0 exit ? 00:07:44 VV
4 Z 0 16673 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 17057 4243 0 79 0 - 0 exit ? 00:09:33 VV
4 Z 0 17095 4243 0 75 0 - 0 exit ? 00:00:04 VV
4 Z 0 17155 4243 0 81 0 - 0 exit ? 00:09:44 VV
4 Z 0 17760 4243 0 81 0 - 0 exit ? 00:09:42 VV
4 Z 0 18088 4243 0 83 0 - 0 exit ? 00:10:00 VV
4 Z 0 18274 4243 0 76 0 - 0 exit ? 00:07:45 VV
4 Z 0 18744 4243 0 83 0 - 0 exit ? 00:09:18 VV
4 Z 0 19227 4243 0 82 0 - 0 exit ? 00:10:10 VV
4 Z 0 19288 4243 0 79 0 - 0 exit ? 00:09:23 VV
4 Z 0 19316 4243 0 78 0 - 0 exit ? 00:09:51 VV
4 Z 0 19654 4243 0 78 0 - 0 exit ? 00:09:32 VV
4 Z 0 19695 4243 0 77 0 - 0 exit ? 00:09:51 VV
4 Z 0 20190 4243 0 78 0 - 0 exit ? 00:08:55 VV
4 Z 0 20602 4243 0 76 0 - 0 exit ? 00:07:56 VV
4 Z 0 21455 4243 0 76 0 - 0 exit ? 00:07:54 VV
4 Z 0 21687 4243 0 83 0 - 0 exit ? 00:09:16 VV
4 Z 0 22785 4243 0 84 0 - 0 exit ? 00:08:08 VV
4 Z 0 22855 4243 0 78 0 - 0 exit ? 00:09:39 VV
4 Z 0 23330 4243 0 78 0 - 0 exit ? 00:09:37 VV
4 Z 0 23405 4243 0 82 0 - 0 exit ? 00:10:24 VV
4 Z 0 23600 4243 0 83 0 - 0 exit ? 00:08:45 VV
4 Z 0 24578 4243 0 76 0 - 0 exit ? 00:07:40 VV
4 Z 0 24846 4243 0 75 0 - 0 exit ? 00:00:04 VV
4 Z 0 25661 4243 0 78 0 - 0 exit ? 00:08:04 VV
4 Z 0 26718 4243 0 76 0 - 0 exit ? 00:07:56 VV
4 Z 0 26908 4243 0 82 0 - 0 exit ? 00:09:45 VV
4 Z 0 27554 4243 0 77 0 - 0 exit ? 00:09:27 VV
4 Z 0 28478 4243 0 82 0 - 0 exit ? 00:08:10 VV
4 Z 0 28553 4243 0 78 0 - 0 exit ? 00:10:21 VV
4 Z 0 29034 4243 0 76 0 - 0 exit ? 00:09:24 VV
4 Z 0 29173 4243 0 82 0 - 0 exit ? 00:09:54 VV
4 Z 0 29193 4243 0 82 0 - 0 exit ? 00:09:04 VV
4 Z 0 29722 4243 0 78 0 - 0 exit ? 00:09:34 VV
4 Z 0 30856 4243 0 78 0 - 0 exit ? 00:09:11 VV
4 Z 0 30999 4243 0 83 0 - 0 exit ? 00:09:04 VV
4 Z 0 31057 4243 0 78 0 - 0 exit ? 00:09:51 VV
4 Z 0 31274 4243 0 76 0 - 0 exit ? 00:07:51 VV
4 Z 0 31735 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 31924 4243 0 81 0 - 0 exit ? 00:08:01 VV
4 Z 0 32121 4243 9 78 0 - 0 exit ? 00:10:11 VV
then we have to look into PPID(parent process i'd) and kill that process
here we the PPID is 4243
so the command to be executed will be
kill -9 4243
I have got a solution for removing zombie process on servers. We neither
need to restart the server nor run script to do this all we have to do is
just run the following command.
ps -el | grep 'Z'
The output of the above command will be something like this
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 Z 0 668 4243 0 78 0 - 0 exit ? 00:09:39 VV
4 Z 0 1403 4243 0 78 0 - 0 exit ? 00:08:11 VV
4 Z 0 1613 4243 0 78 0 - 0 exit ? 00:09:43 VV
4 Z 0 2202 4243 0 78 0 - 0 exit ? 00:09:25 VV
4 Z 0 2382 4243 0 82 0 - 0 exit ? 00:08:07 VV
4 Z 0 2618 4243 0 78 0 - 0 exit ? 00:09:52 VV
4 Z 0 2714 4243 0 77 0 - 0 exit ? 00:09:51 VV
4 Z 0 2741 4243 0 78 0 - 0 exit ? 00:09:18 VV
4 Z 0 2956 4243 0 76 0 - 0 exit ? 00:07:41 VV
4 Z 0 3030 4243 0 75 0 - 0 exit ? 00:00:06 VV
4 Z 0 3125 4243 0 83 0 - 0 exit ? 00:08:09 VV
4 Z 0 3260 4243 0 83 0 - 0 exit ? 00:09:02 VV
4 Z 0 3480 4243 0 77 0 - 0 exit ? 00:09:37 VV
4 Z 0 4151 4243 0 76 0 - 0 exit ? 00:08:49 VV
4 Z 0 4899 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 5099 4243 0 81 0 - 0 exit ? 00:09:32 VV
4 Z 0 5667 4243 0 76 0 - 0 exit ? 00:07:58 VV
4 Z 0 5778 4243 0 78 0 - 0 exit ? 00:09:40 VV
4 Z 0 5956 4243 0 82 0 - 0 exit ? 00:10:19 VV
4 Z 0 7035 4243 0 80 0 - 0 exit ? 00:10:04 VV
4 Z 0 7448 4243 0 83 0 - 0 exit ? 00:08:23 VV
4 Z 0 7757 4243 0 83 0 - 0 exit ? 00:10:06 VV
4 Z 0 8219 4243 0 82 0 - 0 exit ? 00:10:11 VV
4 Z 0 8262 4243 0 76 0 - 0 exit ? 00:07:55 VV
4 Z 0 8631 4243 0 76 0 - 0 exit ? 00:05:57 VV
4 Z 0 8728 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 8944 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 9431 4243 0 80 0 - 0 exit ? 00:09:57 VV
4 Z 0 9577 4243 0 83 0 - 0 exit ? 00:09:00 VV
4 Z 0 9762 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 10263 4243 0 76 0 - 0 exit ? 00:07:57 VV
4 Z 0 10960 4243 0 83 0 - 0 exit ? 00:08:13 VV
4 Z 0 11526 4243 0 78 0 - 0 exit ? 00:10:08 VV
4 Z 0 11952 4243 0 78 0 - 0 exit ? 00:08:05 VV
4 Z 0 13339 4243 0 78 0 - 0 exit ? 00:08:12 VV
4 Z 0 14776 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 15016 4243 0 83 0 - 0 exit ? 00:08:09 VV
4 Z 0 15163 4243 0 76 0 - 0 exit ? 00:07:44 VV
4 Z 0 16673 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 17057 4243 0 79 0 - 0 exit ? 00:09:33 VV
4 Z 0 17095 4243 0 75 0 - 0 exit ? 00:00:04 VV
4 Z 0 17155 4243 0 81 0 - 0 exit ? 00:09:44 VV
4 Z 0 17760 4243 0 81 0 - 0 exit ? 00:09:42 VV
4 Z 0 18088 4243 0 83 0 - 0 exit ? 00:10:00 VV
4 Z 0 18274 4243 0 76 0 - 0 exit ? 00:07:45 VV
4 Z 0 18744 4243 0 83 0 - 0 exit ? 00:09:18 VV
4 Z 0 19227 4243 0 82 0 - 0 exit ? 00:10:10 VV
4 Z 0 19288 4243 0 79 0 - 0 exit ? 00:09:23 VV
4 Z 0 19316 4243 0 78 0 - 0 exit ? 00:09:51 VV
4 Z 0 19654 4243 0 78 0 - 0 exit ? 00:09:32 VV
4 Z 0 19695 4243 0 77 0 - 0 exit ? 00:09:51 VV
4 Z 0 20190 4243 0 78 0 - 0 exit ? 00:08:55 VV
4 Z 0 20602 4243 0 76 0 - 0 exit ? 00:07:56 VV
4 Z 0 21455 4243 0 76 0 - 0 exit ? 00:07:54 VV
4 Z 0 21687 4243 0 83 0 - 0 exit ? 00:09:16 VV
4 Z 0 22785 4243 0 84 0 - 0 exit ? 00:08:08 VV
4 Z 0 22855 4243 0 78 0 - 0 exit ? 00:09:39 VV
4 Z 0 23330 4243 0 78 0 - 0 exit ? 00:09:37 VV
4 Z 0 23405 4243 0 82 0 - 0 exit ? 00:10:24 VV
4 Z 0 23600 4243 0 83 0 - 0 exit ? 00:08:45 VV
4 Z 0 24578 4243 0 76 0 - 0 exit ? 00:07:40 VV
4 Z 0 24846 4243 0 75 0 - 0 exit ? 00:00:04 VV
4 Z 0 25661 4243 0 78 0 - 0 exit ? 00:08:04 VV
4 Z 0 26718 4243 0 76 0 - 0 exit ? 00:07:56 VV
4 Z 0 26908 4243 0 82 0 - 0 exit ? 00:09:45 VV
4 Z 0 27554 4243 0 77 0 - 0 exit ? 00:09:27 VV
4 Z 0 28478 4243 0 82 0 - 0 exit ? 00:08:10 VV
4 Z 0 28553 4243 0 78 0 - 0 exit ? 00:10:21 VV
4 Z 0 29034 4243 0 76 0 - 0 exit ? 00:09:24 VV
4 Z 0 29173 4243 0 82 0 - 0 exit ? 00:09:54 VV
4 Z 0 29193 4243 0 82 0 - 0 exit ? 00:09:04 VV
4 Z 0 29722 4243 0 78 0 - 0 exit ? 00:09:34 VV
4 Z 0 30856 4243 0 78 0 - 0 exit ? 00:09:11 VV
4 Z 0 30999 4243 0 83 0 - 0 exit ? 00:09:04 VV
4 Z 0 31057 4243 0 78 0 - 0 exit ? 00:09:51 VV
4 Z 0 31274 4243 0 76 0 - 0 exit ? 00:07:51 VV
4 Z 0 31735 4243 0 76 0 - 0 exit ? 00:00:04 VV
4 Z 0 31924 4243 0 81 0 - 0 exit ? 00:08:01 VV
4 Z 0 32121 4243 9 78 0 - 0 exit ? 00:10:11 VV
then we have to look into PPID(parent process i'd) and kill that process
here we the PPID is 4243
so the command to be executed will be
kill -9 4243
Tuesday, June 29, 2010
server administration: services
server administration: services
Operating Systems
Server Administration
Control Panels
Webserver Administration
Mail Administration
DNS Administration
FTP Administration
Database Administration
Security Administration
Logs and Statistics Administration
FrontPage Administration
CGI Administration
Telnet Administration
Backup / NAS / FTP Administration
Quota Administration
IP Address / Network Administration
Server Task Scheduling
Operating Systems
Redhat ES - kernel upgrades
CentOS - kernel upgrades
FreeBSD - kernel upgrades
Windows 2003 Server - update
Windows 2003 R2 Server - update
Windows Enterprise Server - update
Top
Server Administration
Setting / Changing Hostname
Settings Time & NTTP
Installing 3rd Party Applications
Installing Zend
Installing PHP
Installing Ruby on Rails
Installing Python
Installing Imagemagik
Installing control panels
Installing Fantastico
Installing RVSkins
Install modsecurity
Top
Control Panels
cPanel
Plesk Reloaded 7.5
Plesk Reloaded 7.6
Plesk Reloaded 8.0
Plesk Sitebuilder
Top
Webserver Administration
Httpd conf config
.htacces config
Password protection
Host Name Lookups
Apache Configuration
Apache Module Installation
Apache load tweaking
URL blocking and re-direction
Secure Cert Problems
Apache Rewrite Rules
Stats Installations
Log Rotation
Top
Mail Administration
Sendmail
Qmail
Exim
IMAP
Webmail
MailEnable
SMTP
POP3
Mailing List
Autoresponders
POP Authorization
Anti-SPAM Configuration
Email Filters
Top
DNS Administration
Name Server Setup
Modifying MX, A records, CNAME
Troubleshooting DNS Resolution
Reverse DNS (PTR) Configuration
Master / Slave / Setup
Top
FTP Administration
Anonymous FTP enable/disable
FTP configuration (including control panels)
FTP Virtual Hosting Setup / Config
FTP Users / Permissions / Setup
Top
Database Administration
Access Denied
Installing Databases
Modifying Databases
Database Management
Connecting to a database
Database Permissions
Connecting over Private Network
Top
Security Administration
IP Tables
Software Firewalls
Hardware Firewalls
Allowed Ports - Public / Private
Anti - SPAM
Anti - Virus
DDOS Mitigation
Host-IPS Configuration
Top
Logs and Statistics Administration
Storage and Rotation of log files
Global log file issues
Log Size Management
Installing Webalizer
Installing Awstats
Installing Urchin
Top
FrontPage Administration
Installing FrontPage
Removing FrontPage Extensions
Re-Installing FrontPage Extensions
FrontPage Secure Forms
FrontPage Mail Extension Problems
Top
CGI Administration
PHP install, debug, & configuration
Perl install, debug & configuration
Perl install, debug & configuration
Python install, debug & configuration
SSI install, debug & configuration
ASP install, debug & configuration
CGI file permissions
Debug server errors
Mail form scripts
Top
Telnet Administration
Enabling / disabling shell access for users
Troubleshooting telnet connections
Top
Backup / NAS / FTP Administration
Backup configuration and setup
Backup and restore
Migration questions
FTP setup and configuration
FTP users and permissions
NAS mount
Backup and Storage to NAS
Top
Quota Administration
Disk Quotas - OS level
Disk Quotas - control panels
Disk Quotas - errors and reset
General setup and configuration
Top
IP Address / Network Administration
Addition / deletion of secondary IP to server
Local route tables
IP tables
Static IP assignments to services
Static IP Hosting
Dynamic IP Hosting
Troubleshooting IP Aliases
Top
Server Task Scheduling
Creating Cron Jobs
Setting up Scheduled Tasks
Operating Systems
Server Administration
Control Panels
Webserver Administration
Mail Administration
DNS Administration
FTP Administration
Database Administration
Security Administration
Logs and Statistics Administration
FrontPage Administration
CGI Administration
Telnet Administration
Backup / NAS / FTP Administration
Quota Administration
IP Address / Network Administration
Server Task Scheduling
Operating Systems
Redhat ES - kernel upgrades
CentOS - kernel upgrades
FreeBSD - kernel upgrades
Windows 2003 Server - update
Windows 2003 R2 Server - update
Windows Enterprise Server - update
Top
Server Administration
Setting / Changing Hostname
Settings Time & NTTP
Installing 3rd Party Applications
Installing Zend
Installing PHP
Installing Ruby on Rails
Installing Python
Installing Imagemagik
Installing control panels
Installing Fantastico
Installing RVSkins
Install modsecurity
Top
Control Panels
cPanel
Plesk Reloaded 7.5
Plesk Reloaded 7.6
Plesk Reloaded 8.0
Plesk Sitebuilder
Top
Webserver Administration
Httpd conf config
.htacces config
Password protection
Host Name Lookups
Apache Configuration
Apache Module Installation
Apache load tweaking
URL blocking and re-direction
Secure Cert Problems
Apache Rewrite Rules
Stats Installations
Log Rotation
Top
Mail Administration
Sendmail
Qmail
Exim
IMAP
Webmail
MailEnable
SMTP
POP3
Mailing List
Autoresponders
POP Authorization
Anti-SPAM Configuration
Email Filters
Top
DNS Administration
Name Server Setup
Modifying MX, A records, CNAME
Troubleshooting DNS Resolution
Reverse DNS (PTR) Configuration
Master / Slave / Setup
Top
FTP Administration
Anonymous FTP enable/disable
FTP configuration (including control panels)
FTP Virtual Hosting Setup / Config
FTP Users / Permissions / Setup
Top
Database Administration
Access Denied
Installing Databases
Modifying Databases
Database Management
Connecting to a database
Database Permissions
Connecting over Private Network
Top
Security Administration
IP Tables
Software Firewalls
Hardware Firewalls
Allowed Ports - Public / Private
Anti - SPAM
Anti - Virus
DDOS Mitigation
Host-IPS Configuration
Top
Logs and Statistics Administration
Storage and Rotation of log files
Global log file issues
Log Size Management
Installing Webalizer
Installing Awstats
Installing Urchin
Top
FrontPage Administration
Installing FrontPage
Removing FrontPage Extensions
Re-Installing FrontPage Extensions
FrontPage Secure Forms
FrontPage Mail Extension Problems
Top
CGI Administration
PHP install, debug, & configuration
Perl install, debug & configuration
Perl install, debug & configuration
Python install, debug & configuration
SSI install, debug & configuration
ASP install, debug & configuration
CGI file permissions
Debug server errors
Mail form scripts
Top
Telnet Administration
Enabling / disabling shell access for users
Troubleshooting telnet connections
Top
Backup / NAS / FTP Administration
Backup configuration and setup
Backup and restore
Migration questions
FTP setup and configuration
FTP users and permissions
NAS mount
Backup and Storage to NAS
Top
Quota Administration
Disk Quotas - OS level
Disk Quotas - control panels
Disk Quotas - errors and reset
General setup and configuration
Top
IP Address / Network Administration
Addition / deletion of secondary IP to server
Local route tables
IP tables
Static IP assignments to services
Static IP Hosting
Dynamic IP Hosting
Troubleshooting IP Aliases
Top
Server Task Scheduling
Creating Cron Jobs
Setting up Scheduled Tasks
Saturday, June 26, 2010
why + symbol is while viewing file permissions ??
ACL (Access control List) which are used to define more fine-grained discretionary access rights for files and directories.
Setting an additional user read access
=======================================
setfacl -m u:act:r file_name
where,
The -m (--modify) the permission
u -user name
r -read permission
Getting Access view
===================
getfacl file_name
Removing ACL Permission to a file
====================================
setfacl -b filename
For more reference please visit the following links.
http://gd.tuwien.ac.at/linuxcommand.org/man_pages/setfacl1.html
http://linux.about.com/library/cmd/blcmdl5_acl.htm
http://linux.about.com/library/cmd/blcmdl1_setfacl.htm
http://www.symantec.com/connect/articles/introduction-linux-capabilities-and-acls
http://www.sysadmindayph.com/blog/getfacl-and-setfacl-unix-access-control-acl-tool/
Setting an additional user read access
=======================================
setfacl -m u:act:r file_name
where,
The -m (--modify) the permission
u -user name
r -read permission
Getting Access view
===================
getfacl file_name
Removing ACL Permission to a file
====================================
setfacl -b filename
For more reference please visit the following links.
http://gd.tuwien.ac.at/linuxcommand.org/man_pages/setfacl1.html
http://linux.about.com/library/cmd/blcmdl5_acl.htm
http://linux.about.com/library/cmd/blcmdl1_setfacl.htm
http://www.symantec.com/connect/articles/introduction-linux-capabilities-and-acls
http://www.sysadmindayph.com/blog/getfacl-and-setfacl-unix-access-control-acl-tool/
Wednesday, June 23, 2010
Linux Basic Commands
This is a linux command line reference for common operations.
Examples marked with • are valid/safe to paste without modification into a terminal, so
you may want to keep a terminal window open while reading this so you can cut & paste.
All these commands have been tested both on Fedora and Ubuntu.
See also more linux commands.
Examples marked with • are valid/safe to paste without modification into a terminal, so
you may want to keep a terminal window open while reading this so you can cut & paste.
All these commands have been tested both on Fedora and Ubuntu.
See also more linux commands.
Command | Description | |
• | apropos whatis | Show commands pertinent to string. See also threadsafe |
• | man -t man | ps2pdf - > man.pdf | make a pdf of a manual page |
which command | Show full path name of command | |
time command | See how long a command takes | |
• | time cat | Start stopwatch. Ctrl-d to stop. See also sw |
dir navigation | ||
• | cd - | Go to previous directory |
• | cd | Go to $HOME directory |
(cd dir && command) | Go to dir, execute command and return to current dir | |
• | pushd . | Put current dir on stack so you can popd back to it |
file searching | ||
• | alias l='ls -l --color=auto' | quick dir listing |
• | ls -lrt | List files by date. See also newest and find_mm_yyyy |
• | ls /usr/bin | pr -T9 -W$COLUMNS | Print in 9 columns to width of terminal |
find -name '*.[ch]' | xargs grep -E 'expr' | Search 'expr' in this dir and below. See also findrepo | |
find -type f -print0 | xargs -r0 grep -F 'example' | Search all regular files for 'example' in this dir and below | |
find -maxdepth 1 -type f | xargs grep -F 'example' | Search all regular files for 'example' in this dir | |
find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done | Process each item with multiple commands (in while loop) | |
• | find -type f ! -perm -444 | Find files not readable by all (useful for web site) |
• | find -type d ! -perm -111 | Find dirs not accessible by all (useful for web site) |
• | locate -r 'file[^/]*\.txt' | Search cached index for names. This re is like glob *file*.txt |
• | look reference | Quickly search (sorted) dictionary for prefix |
• | grep --color reference /usr/share/dict/words | Highlight occurances of regular expression in dictionary |
archives and compression | ||
gpg -c file | Encrypt file | |
gpg file.gpg | Decrypt file | |
tar -c dir/ | bzip2 > dir.tar.bz2 | Make compressed archive of dir/ | |
bzip2 -dc dir.tar.bz2 | tar -x | Extract archive (use gzip instead of bzip2 for tar.gz files) | |
tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg' | Make encrypted archive of dir/ on remote machine | |
find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2 | Make archive of subset of dir/ and below | |
find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents | Make copy of subset of dir/ and below | |
( tar -c /dir/to/copy ) | ( cd /where/to/ && tar -x -p ) | Copy (with permissions) copy/ dir to /where/to/ dir | |
( cd /dir/to/copy && tar -c . ) | ( cd /where/to/ && tar -x -p ) | Copy (with permissions) contents of copy/ dir to /where/to/ | |
( tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar -x -p' | Copy (with permissions) copy/ dir to remote:/where/to/ dir | |
dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz' | Backup harddisk to remote machine | |
rsync (Network efficient file copier: Use the --dry-run option for testing) | ||
rsync -P rsync://rsync.server.com/path/to/file file | Only get diffs. Do multiple times for troublesome downloads | |
rsync --bwlimit=1000 fromfile tofile | Locally copy with rate limit. It's like nice for I/O | |
rsync -az -e ssh --delete ~/public_html/ remote.com:'~/public_html' | Mirror web site (using compression and encryption) | |
rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/ | Synchronize current directory with remote one | |
ssh (Secure SHell) | ||
ssh $USER@$HOST command | Run command on $HOST as $USER (default command=shell) | |
• | ssh -f -Y $USER@$HOSTNAME xeyes | Run GUI command on $HOSTNAME as $USER |
scp -p -r $USER@$HOST: file dir/ | Copy with permissions to $USER's home directory on $HOST | |
ssh -g -L 8080:localhost:80 root@$HOST | Forward connections to $HOSTNAME:8080 out to $HOST:80 | |
ssh -R 1434:imap:143 root@$HOST | Forward connections from $HOST:1434 in to imap:143 | |
wget (multi purpose download tool) | ||
• | (cd dir/ && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html) | Store local browsable version of a page to the current dir |
wget -c http://www.example.com/large.file | Continue downloading a partially downloaded file | |
wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/dir/ | Download a set of files to the current directory | |
wget ftp://remote/file[1-9].iso/ | FTP supports globbing directly | |
• | wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | head | Process output directly |
echo 'wget url' | at 01:00 | Download url at 1AM to current dir | |
wget --limit-rate=20k url | Do a low priority download (limit to 20KB/s in this case) | |
wget -nv --spider --force-html -i bookmarks.html | Check links in a file | |
wget --mirror http://www.example.com/ | Efficiently update a local copy of a site (handy from cron) | |
networking (Note ifconfig, route, mii-tool, nslookup commands are obsolete) | ||
ethtool eth0 | Show status of ethernet interface eth0 | |
ethtool --change eth0 autoneg off speed 100 duplex full | Manually set ethernet interface speed | |
iwconfig eth1 | Show status of wireless interface eth1 | |
iwconfig eth1 rate 1Mb/s fixed | Manually set wireless interface speed | |
• | iwlist scan | List wireless networks in range |
• | ip link show | List network interfaces |
ip link set dev eth0 name wan | Rename interface eth0 to wan | |
ip link set dev eth0 up | Bring interface eth0 up (or down) | |
• | ip addr show | List addresses for interfaces |
ip addr add 1.2.3.4/24 brd + dev eth0 | Add (or del) ip and mask (255.255.255.0) | |
• | ip route show | List routing table |
ip route add default via 1.2.3.254 | Set default gateway to 1.2.3.254 | |
• | host pixelbeat.org | Lookup DNS ip address for name or vice versa |
• | hostname -i | Lookup local ip address (equivalent to host `hostname`) |
• | whois pixelbeat.org | Lookup whois info for hostname or ip address |
• | netstat -tupl | List internet services on a system |
• | netstat -tup | List active connections to/from system |
windows networking (Note samba is the package that provides all this windows specific networking support) | ||
• | smbtree | Find windows machines. See also findsmb |
nmblookup -A 1.2.3.4 | Find the windows (netbios) name associated with ip address | |
smbclient -L windows_box | List shares on windows machine or samba server | |
mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share | Mount a windows share | |
echo 'message' | smbclient -M windows_box | Send popup to windows machine (off by default in XP sp2) | |
text manipulation (Note sed uses stdin and stdout. Newer versions support inplace editing with the -i option) | ||
sed 's/string1/string2/g' | Replace string1 with string2 | |
sed 's/\(.*\)1/\12/g' | Modify anystring1 to anystring2 | |
sed '/ *#/d; /^ *$/d' | Remove comments and blank lines | |
sed ':a; /\\$/N; s/\\\n//; ta' | Concatenate lines with trailing \ | |
sed 's/[ \t]*$//' | Remove trailing spaces from lines | |
sed 's/\([`"$\]\)/\\\1/g' | Escape shell metacharacters active within double quotes | |
• | seq 10 | sed "s/^/ /; s/ *\(.\{7,\}\)/\1/" | Right align numbers |
sed -n '1000{p;q}' | Print 1000th line | |
sed -n '10,20p;20q' | Print lines 10 to 20 | |
sed -n 's/.* | Extract title from HTML web page | |
sed -i 42d ~/.ssh/known_hosts | Delete a particular line | |
sort -t. -k1,1n -k2,2n -k3,3n -k4,4n | Sort IPV4 ip addresses | |
• | echo 'Test' | tr '[:lower:]' '[:upper:]' | Case conversion |
• | tr -dc '[:print:]' < /dev/urandom | Filter non printable characters |
• | tr -s '[:blank:]' '\t' | cut fields separated by blanks |
• | history | wc -l | Count lines |
set operations (Note you can export LANG=C for speed. Also these assume no duplicate lines within a file) | ||
sort file1 file2 | uniq | Union of unsorted files | |
sort file1 file2 | uniq -d | Intersection of unsorted files | |
sort file1 file1 file2 | uniq -u | Difference of unsorted files | |
sort file1 file2 | uniq -u | Symmetric Difference of unsorted files | |
join -t'\0' -a1 -a2 file1 file2 | Union of sorted files | |
join -t'\0' file1 file2 | Intersection of sorted files | |
join -t'\0' -v2 file1 file2 | Difference of sorted files | |
join -t'\0' -v1 -v2 file1 file2 | Symmetric Difference of sorted files | |
math | ||
• | echo '(1 + sqrt(5))/2' | bc -l | Quick math (Calculate φ). See also bc |
• | echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bc | More complex (int) e.g. This shows max FastE packet rate |
• | echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | python | Python handles scientific notation |
• | echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist | Plot FastE packet rate vs packet size |
• | echo 'obase=16; ibase=10; 64206' | bc | Base conversion (decimal to hexadecimal) |
• | echo $((0x2dec)) | Base conversion (hex to dec) ((shell arithmetic expansion)) |
• | units -t '100m/9.58s' 'miles/hour' | Unit conversion (metric to imperial) |
• | units -t '500GB' 'GiB' | Unit conversion (SI to IEC prefixes) |
• | units -t '1 googol' | Definition lookup |
• | seq 100 | (tr '\n' +; echo 0) | bc | Add a column of numbers. See also add and funcpy |
calendar | ||
• | cal -3 | Display a calendar |
• | cal 9 1752 | Display a calendar for a particular month year |
• | date -d fri | What date is it this friday. See also day |
• | [ $(date -d "tomorrow" +%d) = "01" ] || exit | exit a script unless it's the last day of the month |
• | date --date='25 Dec' +%A | What day does xmas fall on, this year |
• | date --date='@2147483647' | Convert seconds since the epoch (1970-01-01 UTC) to date |
• | TZ='America/Los_Angeles' date | What time is it on west coast of US (use tzselect to find TZ) |
• | date --date='TZ="America/Los_Angeles" 09:00 next Fri' | What's the local time for 9AM next Friday on west coast US |
locales | ||
• | printf "%'d\n" 1234 | Print number with thousands grouping appropriate to locale |
• | BLOCK_SIZE=\'1 ls -l | Use locale thousands grouping in ls. See also l |
• | echo "I live in `locale territory`" | Extract info from locale database |
• | LANG=en_IE.utf8 locale int_prefix | Lookup locale info for specific country. See also ccodes |
• | locale | cut -d= -f1 | xargs locale -kc | less | List fields available in locale database |
recode (Obsoletes iconv, dos2unix, unix2dos) | ||
• | recode -l | less | Show available conversions (aliases on each line) |
recode windows-1252.. file_to_change.txt | Windows "ansi" to local charset (auto does CRLF conversion) | |
recode utf-8/CRLF.. file_to_change.txt | Windows utf8 to local charset | |
recode iso-8859-15..utf8 file_to_change.txt | Latin9 (western europe) to utf8 | |
recode ../b64 < file.txt > file.b64 | Base64 encode | |
recode /qp.. < file.qp > file.txt | Quoted printable decode | |
recode ..HTML < file.txt > file.html | Text to HTML | |
• | recode -lf windows-1252 | grep euro | Lookup table of characters |
• | echo -n 0x80 | recode latin-9/x1..dump | Show what a code represents in latin-9 charmap |
• | echo -n 0x20AC | recode ucs-2/x2..latin-9/x | Show latin-9 encoding |
• | echo -n 0x20AC | recode ucs-2/x2..utf-8/x | Show utf-8 encoding |
CDs | ||
gzip < /dev/cdrom > cdrom.iso.gz | Save copy of data cdrom | |
mkisofs -V LABEL -r dir | gzip > cdrom.iso.gz | Create cdrom image from contents of dir | |
mount -o loop cdrom.iso /mnt/dir | Mount the cdrom image at /mnt/dir (read only) | |
cdrecord -v dev=/dev/cdrom blank=fast | Clear a CDRW | |
gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom - | Burn cdrom image (use dev=ATAPI -scanbus to confirm dev) | |
cdparanoia -B | Rip audio tracks from CD to wav files in current dir | |
cdrecord -v dev=/dev/cdrom -audio -pad *.wav | Make audio CD from all wavs in current dir (see also cdrdao) | |
oggenc --tracknum='track' track.cdda.wav -o 'track.ogg' | Make ogg file from wav file | |
disk space (See also FSlint) | ||
• | ls -lSr | Show files by size, biggest last |
• | du -s * | sort -k1,1rn | head | Show top disk users in current dir. See also dutop |
• | du -hs /home/* | sort -k1,1h | Sort paths by easy to interpret disk usage |
• | df -h | Show free space on mounted filesystems |
• | df -i | Show free inodes on mounted filesystems |
• | fdisk -l | Show disks partitions sizes and types (run as root) |
• | rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n | List all packages by installed size (Bytes) on rpm distros |
• | dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n | List all packages by installed size (KBytes) on deb distros |
• | dd bs=1 seek=2TB if=/dev/null of=ext3.test | Create a large test file (taking no space). See also truncate |
• | > file | truncate data of file or create an empty file |
monitoring/debugging | ||
• | tail -f /var/log/messages | Monitor messages in a log file |
• | strace -c ls >/dev/null | Summarise/profile system calls made by command |
• | strace -f -e open ls >/dev/null | List system calls made by command |
• | ltrace -f -e getenv ls >/dev/null | List library calls made by command |
• | lsof -p $$ | List paths that process id has open |
• | lsof ~ | List processes that have specified path open |
• | tcpdump not port 22 | Show network traffic except ssh. See also tcpdump_not_me |
• | ps -e -o pid,args --forest | List processes in a hierarchy |
• | ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d' | List processes by % cpu usage |
• | ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS | List processes by mem (KB) usage. See also ps_mem.py |
• | ps -C firefox-bin -L -o pid,tid,pcpu,state | List all threads for a particular process |
• | ps -p 1,2 | List info for particular process IDs |
• | last reboot | Show system reboot history |
• | free -m | Show amount of (remaining) RAM (-m displays in MB) |
• | watch -n.1 'cat /proc/interrupts' | Watch changeable data continuously |
system information (see also sysinfo) ('#' means root access is required) | ||
• | uname -a | Show kernel version and system architecture |
• | head -n1 /etc/issue | Show name and version of distribution |
• | cat /proc/partitions | Show all partitions registered on the system |
• | grep MemTotal /proc/meminfo | Show RAM total seen by the system |
• | grep "model name" /proc/cpuinfo | Show CPU(s) info |
• | lspci -tv | Show PCI info |
• | lsusb -tv | Show USB info |
• | mount | column -t | List mounted filesystems on the system (and align output) |
• | grep -F capacity: /proc/acpi/battery/BAT0/info | Show state of cells in laptop battery |
# | dmidecode -q | less | Display SMBIOS/DMI information |
# | smartctl -A /dev/sda | grep Power_On_Hours | How long has this disk (system) been powered on in total |
# | hdparm -i /dev/sda | Show info about disk sda |
# | hdparm -tT /dev/sda | Do a read speed test on disk sda |
# | badblocks -s /dev/sda | Test for unreadable blocks on disk sda |
interactive (see also linux keyboard shortcuts) | ||
• | readline | Line editor used by bash, python, bc, gnuplot, ... |
• | screen | Virtual terminals with detach capability, ... |
• | mc | Powerful file manager that can browse rpm, tar, ftp, ssh, ... |
• | gnuplot | Interactive/scriptable graphing |
• | links | Web browser |
• | xdg-open . | open a file or url with the registered desktop application |
Saturday, June 12, 2010
Plesk Important paths
Plesk commands.
Reconfiguring a domain
/usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=domain.com
/usr/local/psa/admin/sbin/statistics –calculate-one
–domain-name=yourdomain.comCommands for removing mail queue on plesk
==================================
Run this :
#qmailctl stop
#find /var/qmail/queue/mess -type f -exec rm {} \;
#find /var/qmail/queue/info -type f -exec rm {} \;
#find /var/qmail/queue/local -type f -exec rm {} \;
#find /var/qmail/queue/intd -type f -exec rm {} \;
#find /var/qmail/queue/todo -type f -exec rm {} \;
#find /var/qmail/queue/remote -type f -exec rm {} \;
#qmailctl start
qmailctl stop
find /var/qmail/queue/mess -type f -exec rm {} \;
find /var/qmail/queue/info -type f -exec rm {} \;
find /var/qmail/queue/local -type f -exec rm {} \;
find /var/qmail/queue/intd -type f -exec rm {} \;
find /var/qmail/queue/todo -type f -exec rm {} \;
find /var/qmail/queue/remote -type f -exec rm {} \;
qmailctl start
==================================
command for removing spam message with unique words.
==================================
eg : qmail-remove -r -q /var/qmail/queue/ -p usuarios -i -v
where ‘usuarious’ is the unique word contained in the spam mails. Replace
it with the word that your spam messages contains.
===================================
Restarting ftp service.
service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@host ~]# service xinetd status
xinetd (pid 23815) is running…
[root@host ~]# lsof -i tcp:21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME xinetd 23815 root 5u IPv4
552944287 TCP *:ftp (LISTEN)
./f-prot -verno check for doctor web version.
/usr/local/f-prot/tools/
./check-updates.pl
===============
redirecting a domain into a folder.
RewriteEngine on
RewriteBase /
RewriteRule ^$ /shop/ where shop is the folder name.
===============
Useful vhost.conf entry and .htaccess entries.
==================
php_value magic_quotes_gpc 1
php_value allow_url_fopen 1
php_value register_globals 0
php_value session.cookie_lifetime 0
php_value session.cookie_secure 0
php_value session.name PHPSESSID
php_value session.referer_check 0
==================
Restoring a database using the bbackupquery.
==============
bbackupquery
cd var-lib-mysqldumps
echo “ls -dot var-lib-mysqldumps” | bbackupquery > results
cat results | grep pn.sql.gz
select according to date
cat results | grep pn.sql.gz | wc -l
get -i 0015be13 uspn.sql.gz
Restoring files and directories
IF you want to restore a file or a directory , you must be logged on the
server where the problem domain is.
Then type bbackupquery , this will automatically connect you on the
backup server .
After this type help to see a list of commands for future “help” and
“help command” for a command describe .
Type “ls” to view the current directories and “cd” to change the current
directory and go to the problem domain.you can view old files and
directory
with the command “ls -dot ”
IF you see something like 001bea42 f–o– 2007-04-27T05:48:58 index.html
this is an old files, there is f–o– “o” from old.Old directories has a
form of -dX— .
For directories restore type ” restore -r directory newdirectory ”
And for a single file restore type get -i id file .
ID is if you look at the above example is 001bea42 , so a restore of
that file will be done by typing : ” get -i 001bea42 index.html ”
==============
queries for getting the username and password for a particular domain
===========
select cl_id from domains where name=’test.com’; #gets client ID from
domain name
select login, account_id from clients where id=’145′; #gets account
ID and login from client ID
select password from accounts where id =’2761′; #gets password from
account ID
===========
Plesk log files.
=============
/var/log/mysqld.log mysql
/var/log/httpd/error_log http
/var/log/httpd/access_log http
/var/log/httpd/suexec_log http
/var/log/mailman mailman
/usr/local/psa/var/log/maillog maillog
=============
Important configuration files on plesk.
===============
/var/log/mysqld.log mysql
/var/log/httpd/error_log http
/var/log/httpd/access_log http
/var/log/httpd/suexec_log http
/var/log/mailman mailman
/usr/local/psa/var/log/maillog maillog
[22:17:17 plesk]$ cat conffiles
/var/named/run-root/etc/named.conf named
/var/named/run-root/var/ db files
/var/qmail/mailnames mailbox
/etc/psa/psa.conf plesk
/etc/psa/.psa.shadow plesk passwd
===============
Useful Commands
How to find out the user login of a database
==================================================
# To find out dom_id of the domain
select id from domains where name=’jasonreech.net’;
# To find out the databases, using dom_id
select * from data_bases where dom_id=’’;
# To find out user login from db_id
select login from db_users where db_id=’’;
Apache configuration and log files locations
======================================================
# Main apache configuration files
/etc/httpd/conf/httpd.conf
# Users apache configuration file is included in
/etc/httpd/conf.d/*_psa_httpd.conf
# Users apache configuration files
Include /home/httpd/vhosts//conf/httpd.include
Ex:- /home/httpd/vhosts/jasonreech.net/conf/httpd.include
# Apache’s log file is located in
/var/log/httpd/error_log
# Apache include files directory
/etc/httpd/conf.d/
# Aapche binary file
/usr/sbin/httpd
Qmail configuration and log files locations
====================================================
# qmail directory
/var/qmail
# Location of qmail maildirs
/var/qmail/mailnames/
# Log file location
/usr/local/psa/var/log/maillog
# Binary directory
/var/qmail/bin/
My Sql configuration file and log location
====================================================
# location of mysql
/var/lib/mysql
# Configuration File
/etc/my.cnf
# Log file
/var/log/mysqld.log
# Binary file
/usr/bin/mysql
BIND configuration file
============================
# Configuration File
/var/named/run-root/etc/named.conf
# Zone file location
/var/named/run-root/var/
Plesk configuration files
=============================
# Plesk admin password is located in
/etc/psa/.psa.shadow
#This is the same password for mysql root user
# plesk configuration file
/etc/psa/psa.conf
# plesk directory
/usr/local/psa
# Directory for the config dile is
/usr/local/psa/etc
#postgresql directory
/var/lib/pgsql/data
FTP configuration files and logs
=====================================
# FTP configuration file is
/etc/proftpd.conf
# FTP log file
/usr/local/psa/var/log/xferlog
# FTP bianry file
/usr/bin/ftp
Awstatics configurtion files and logs
=========================================
# Configuration file location
/etc/awstats/awstats.com
# Log file are located
/var/log/httpd/access_log
# Domains access logs
/home/httpd/vhosts//statistics/logs/access_log
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/usr/local/psa/admin/bin/websrvmng -a
# create configuration files for all domains
/usr/local/psa/admin/bin/websrvmng -u –reconfigure-vhost
–vhost-name=
# webserver reconfiguration for one given host
/usr/local/psa/admin/bin/websrvmng -o =stop webserver
/usr/local/psa/admin/bin/websrvmng -p =start webserver
/usr/local/psa/admin/bin/websrvmng -r =restart websever
/usr/local/psa/admin/bin/websrvmng -s =webserver status
/usr/local/psa/admin/bin/webstatmng –set-configs
–stat-prog=(webalizer|awstats) –domain-name=
# generate webalizer or AWStats config for
/usr/local/psa/admin/bin/timemng –set-system-time –time=
# set system time
/usr/local/psa/admin/bin/timemng –get-system-time
# get system time
/usr/local/psa/admin/bin/timemng –set-timezone –timezone=
# set time zone
Reconfiguring a domain
/usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=domain.com
/usr/local/psa/admin/sbin/statistics –calculate-one
–domain-name=yourdomain.comCommands for removing mail queue on plesk
==================================
Run this :
#qmailctl stop
#find /var/qmail/queue/mess -type f -exec rm {} \;
#find /var/qmail/queue/info -type f -exec rm {} \;
#find /var/qmail/queue/local -type f -exec rm {} \;
#find /var/qmail/queue/intd -type f -exec rm {} \;
#find /var/qmail/queue/todo -type f -exec rm {} \;
#find /var/qmail/queue/remote -type f -exec rm {} \;
#qmailctl start
qmailctl stop
find /var/qmail/queue/mess -type f -exec rm {} \;
find /var/qmail/queue/info -type f -exec rm {} \;
find /var/qmail/queue/local -type f -exec rm {} \;
find /var/qmail/queue/intd -type f -exec rm {} \;
find /var/qmail/queue/todo -type f -exec rm {} \;
find /var/qmail/queue/remote -type f -exec rm {} \;
qmailctl start
==================================
command for removing spam message with unique words.
==================================
eg : qmail-remove -r -q /var/qmail/queue/ -p usuarios -i -v
where ‘usuarious’ is the unique word contained in the spam mails. Replace
it with the word that your spam messages contains.
===================================
Restarting ftp service.
service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@host ~]# service xinetd status
xinetd (pid 23815) is running…
[root@host ~]# lsof -i tcp:21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME xinetd 23815 root 5u IPv4
552944287 TCP *:ftp (LISTEN)
./f-prot -verno check for doctor web version.
/usr/local/f-prot/tools/
./check-updates.pl
===============
redirecting a domain into a folder.
RewriteEngine on
RewriteBase /
RewriteRule ^$ /shop/ where shop is the folder name.
===============
Useful vhost.conf entry and .htaccess entries.
==================
php_value magic_quotes_gpc 1
php_value allow_url_fopen 1
php_value register_globals 0
php_value session.cookie_lifetime 0
php_value session.cookie_secure 0
php_value session.name PHPSESSID
php_value session.referer_check 0
==================
Restoring a database using the bbackupquery.
==============
bbackupquery
cd var-lib-mysqldumps
echo “ls -dot var-lib-mysqldumps” | bbackupquery > results
cat results | grep pn.sql.gz
select according to date
cat results | grep pn.sql.gz | wc -l
get -i 0015be13 uspn.sql.gz
Restoring files and directories
IF you want to restore a file or a directory , you must be logged on the
server where the problem domain is.
Then type bbackupquery , this will automatically connect you on the
backup server .
After this type help to see a list of commands for future “help” and
“help command” for a command describe .
Type “ls” to view the current directories and “cd” to change the current
directory and go to the problem domain.you can view old files and
directory
with the command “ls -dot ”
IF you see something like 001bea42 f–o– 2007-04-27T05:48:58 index.html
this is an old files, there is f–o– “o” from old.Old directories has a
form of -dX— .
For directories restore type ” restore -r directory newdirectory ”
And for a single file restore type get -i id file .
ID is if you look at the above example is 001bea42 , so a restore of
that file will be done by typing : ” get -i 001bea42 index.html ”
==============
queries for getting the username and password for a particular domain
===========
select cl_id from domains where name=’test.com’; #gets client ID from
domain name
select login, account_id from clients where id=’145′; #gets account
ID and login from client ID
select password from accounts where id =’2761′; #gets password from
account ID
===========
Plesk log files.
=============
/var/log/mysqld.log mysql
/var/log/httpd/error_log http
/var/log/httpd/access_log http
/var/log/httpd/suexec_log http
/var/log/mailman mailman
/usr/local/psa/var/log/maillog maillog
=============
Important configuration files on plesk.
===============
/var/log/mysqld.log mysql
/var/log/httpd/error_log http
/var/log/httpd/access_log http
/var/log/httpd/suexec_log http
/var/log/mailman mailman
/usr/local/psa/var/log/maillog maillog
[22:17:17 plesk]$ cat conffiles
/var/named/run-root/etc/named.conf named
/var/named/run-root/var/ db files
/var/qmail/mailnames mailbox
/etc/psa/psa.conf plesk
/etc/psa/.psa.shadow plesk passwd
===============
Useful Commands
How to find out the user login of a database
==================================================
# To find out dom_id of the domain
select id from domains where name=’jasonreech.net’;
# To find out the databases, using dom_id
select * from data_bases where dom_id=’
# To find out user login from db_id
select login from db_users where db_id=’
Apache configuration and log files locations
======================================================
# Main apache configuration files
/etc/httpd/conf/httpd.conf
# Users apache configuration file is included in
/etc/httpd/conf.d/*_psa_httpd.conf
# Users apache configuration files
Include /home/httpd/vhosts/
Ex:- /home/httpd/vhosts/jasonreech.net/conf/httpd.include
# Apache’s log file is located in
/var/log/httpd/error_log
# Apache include files directory
/etc/httpd/conf.d/
# Aapche binary file
/usr/sbin/httpd
Qmail configuration and log files locations
====================================================
# qmail directory
/var/qmail
# Location of qmail maildirs
/var/qmail/mailnames/
# Log file location
/usr/local/psa/var/log/maillog
# Binary directory
/var/qmail/bin/
My Sql configuration file and log location
====================================================
# location of mysql
/var/lib/mysql
# Configuration File
/etc/my.cnf
# Log file
/var/log/mysqld.log
# Binary file
/usr/bin/mysql
BIND configuration file
============================
# Configuration File
/var/named/run-root/etc/named.conf
# Zone file location
/var/named/run-root/var/
Plesk configuration files
=============================
# Plesk admin password is located in
/etc/psa/.psa.shadow
#This is the same password for mysql root user
# plesk configuration file
/etc/psa/psa.conf
# plesk directory
/usr/local/psa
# Directory for the config dile is
/usr/local/psa/etc
#postgresql directory
/var/lib/pgsql/data
FTP configuration files and logs
=====================================
# FTP configuration file is
/etc/proftpd.conf
# FTP log file
/usr/local/psa/var/log/xferlog
# FTP bianry file
/usr/bin/ftp
Awstatics configurtion files and logs
=========================================
# Configuration file location
/etc/awstats/awstats.com
# Log file are located
/var/log/httpd/access_log
# Domains access logs
/home/httpd/vhosts/
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/usr/local/psa/admin/bin/websrvmng -a
# create configuration files for all domains
/usr/local/psa/admin/bin/websrvmng -u –reconfigure-vhost
–vhost-name=
# webserver reconfiguration for one given host
/usr/local/psa/admin/bin/websrvmng -o =stop webserver
/usr/local/psa/admin/bin/websrvmng -p =start webserver
/usr/local/psa/admin/bin/websrvmng -r =restart websever
/usr/local/psa/admin/bin/websrvmng -s =webserver status
/usr/local/psa/admin/bin/webstatmng –set-configs
–stat-prog=(webalizer|awstats) –domain-name=
# generate webalizer or AWStats config for
/usr/local/psa/admin/bin/timemng –set-system-time –time=
# set system time
/usr/local/psa/admin/bin/timemng –get-system-time
# get system time
/usr/local/psa/admin/bin/timemng –set-timezone –timezone=
# set time zone
Plesk Important paths
Plesk commands.
Author: admin | Comments
Reconfiguring a domain
/usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=domain.com
/usr/local/psa/admin/sbin/statistics –calculate-one
–domain-name=yourdomain.comCommands for removing mail queue on plesk
==================================
Run this :
#qmailctl stop
#find /var/qmail/queue/mess -type f -exec rm {} \;
#find /var/qmail/queue/info -type f -exec rm {} \;
#find /var/qmail/queue/local -type f -exec rm {} \;
#find /var/qmail/queue/intd -type f -exec rm {} \;
#find /var/qmail/queue/todo -type f -exec rm {} \;
#find /var/qmail/queue/remote -type f -exec rm {} \;
#qmailctl start
qmailctl stop
find /var/qmail/queue/mess -type f -exec rm {} \;
find /var/qmail/queue/info -type f -exec rm {} \;
find /var/qmail/queue/local -type f -exec rm {} \;
find /var/qmail/queue/intd -type f -exec rm {} \;
find /var/qmail/queue/todo -type f -exec rm {} \;
find /var/qmail/queue/remote -type f -exec rm {} \;
qmailctl start
==================================
command for removing spam message with unique words.
==================================
eg : qmail-remove -r -q /var/qmail/queue/ -p usuarios -i -v
where ‘usuarious’ is the unique word contained in the spam mails. Replace
it with the word that your spam messages contains.
===================================
Restarting ftp service.
service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@host ~]# service xinetd status
xinetd (pid 23815) is running…
[root@host ~]# lsof -i tcp:21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME xinetd 23815 root 5u IPv4
552944287 TCP *:ftp (LISTEN)
./f-prot -verno check for doctor web version.
/usr/local/f-prot/tools/
./check-updates.pl
===============
redirecting a domain into a folder.
RewriteEngine on
RewriteBase /
RewriteRule ^$ /shop/ where shop is the folder name.
===============
Useful vhost.conf entry and .htaccess entries.
==================
php_value magic_quotes_gpc 1
php_value allow_url_fopen 1
php_value register_globals 0
php_value session.cookie_lifetime 0
php_value session.cookie_secure 0
php_value session.name PHPSESSID
php_value session.referer_check 0
==================
Restoring a database using the bbackupquery.
==============
bbackupquery
cd var-lib-mysqldumps
echo “ls -dot var-lib-mysqldumps” | bbackupquery > results
cat results | grep pn.sql.gz
select according to date
cat results | grep pn.sql.gz | wc -l
get -i 0015be13 uspn.sql.gz
Restoring files and directories
IF you want to restore a file or a directory , you must be logged on the
server where the problem domain is.
Then type bbackupquery , this will automatically connect you on the
backup server .
After this type help to see a list of commands for future “help” and
“help command” for a command describe .
Type “ls” to view the current directories and “cd” to change the current
directory and go to the problem domain.you can view old files and
directory
with the command “ls -dot ”
IF you see something like 001bea42 f–o– 2007-04-27T05:48:58 index.html
this is an old files, there is f–o– “o” from old.Old directories has a
form of -dX— .
For directories restore type ” restore -r directory newdirectory ”
And for a single file restore type get -i id file .
ID is if you look at the above example is 001bea42 , so a restore of
that file will be done by typing : ” get -i 001bea42 index.html ”
==============
queries for getting the username and password for a particular domain
===========
select cl_id from domains where name=’test.com’; #gets client ID from
domain name
select login, account_id from clients where id=’145′; #gets account
ID and login from client ID
select password from accounts where id =’2761′; #gets password from
account ID
===========
Plesk log files.
=============
/var/log/mysqld.log mysql
/var/log/httpd/error_log http
/var/log/httpd/access_log http
/var/log/httpd/suexec_log http
/var/log/mailman mailman
/usr/local/psa/var/log/maillog maillog
=============
Important configuration files on plesk.
===============
/var/log/mysqld.log mysql
/var/log/httpd/error_log http
/var/log/httpd/access_log http
/var/log/httpd/suexec_log http
/var/log/mailman mailman
/usr/local/psa/var/log/maillog maillog
[22:17:17 plesk]$ cat conffiles
/var/named/run-root/etc/named.conf named
/var/named/run-root/var/ db files
/var/qmail/mailnames mailbox
/etc/psa/psa.conf plesk
/etc/psa/.psa.shadow plesk passwd
===============
Useful Commands
How to find out the user login of a database
==================================================
# To find out dom_id of the domain
select id from domains where name=’jasonreech.net’;
# To find out the databases, using dom_id
select * from data_bases where dom_id=’’;
# To find out user login from db_id
select login from db_users where db_id=’’;
Apache configuration and log files locations
======================================================
# Main apache configuration files
/etc/httpd/conf/httpd.conf
# Users apache configuration file is included in
/etc/httpd/conf.d/*_psa_httpd.conf
# Users apache configuration files
Include /home/httpd/vhosts//conf/httpd.include
Ex:- /home/httpd/vhosts/jasonreech.net/conf/httpd.include
# Apache’s log file is located in
/var/log/httpd/error_log
# Apache include files directory
/etc/httpd/conf.d/
# Aapche binary file
/usr/sbin/httpd
Qmail configuration and log files locations
====================================================
# qmail directory
/var/qmail
# Location of qmail maildirs
/var/qmail/mailnames/
# Log file location
/usr/local/psa/var/log/maillog
# Binary directory
/var/qmail/bin/
My Sql configuration file and log location
====================================================
# location of mysql
/var/lib/mysql
# Configuration File
/etc/my.cnf
# Log file
/var/log/mysqld.log
# Binary file
/usr/bin/mysql
BIND configuration file
============================
# Configuration File
/var/named/run-root/etc/named.conf
# Zone file location
/var/named/run-root/var/
Plesk configuration files
=============================
# Plesk admin password is located in
/etc/psa/.psa.shadow
#This is the same password for mysql root user
# plesk configuration file
/etc/psa/psa.conf
# plesk directory
/usr/local/psa
# Directory for the config dile is
/usr/local/psa/etc
#postgresql directory
/var/lib/pgsql/data
FTP configuration files and logs
=====================================
# FTP configuration file is
/etc/proftpd.conf
# FTP log file
/usr/local/psa/var/log/xferlog
# FTP bianry file
/usr/bin/ftp
Awstatics configurtion files and logs
=========================================
# Configuration file location
/etc/awstats/awstats.com
# Log file are located
/var/log/httpd/access_log
# Domains access logs
/home/httpd/vhosts//statistics/logs/access_log
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/usr/local/psa/admin/bin/websrvmng -a
# create configuration files for all domains
/usr/local/psa/admin/bin/websrvmng -u –reconfigure-vhost
–vhost-name=
# webserver reconfiguration for one given host
/usr/local/psa/admin/bin/websrvmng -o =stop webserver
/usr/local/psa/admin/bin/websrvmng -p =start webserver
/usr/local/psa/admin/bin/websrvmng -r =restart websever
/usr/local/psa/admin/bin/websrvmng -s =webserver status
/usr/local/psa/admin/bin/webstatmng –set-configs
–stat-prog=(webalizer|awstats) –domain-name=
# generate webalizer or AWStats config for
/usr/local/psa/admin/bin/timemng –set-system-time –time=
# set system time
/usr/local/psa/admin/bin/timemng –get-system-time
# get system time
/usr/local/psa/admin/bin/timemng –set-timezone –timezone=
# set time zone
Author: admin | Comments
Reconfiguring a domain
/usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=domain.com
/usr/local/psa/admin/sbin/statistics –calculate-one
–domain-name=yourdomain.comCommands for removing mail queue on plesk
==================================
Run this :
#qmailctl stop
#find /var/qmail/queue/mess -type f -exec rm {} \;
#find /var/qmail/queue/info -type f -exec rm {} \;
#find /var/qmail/queue/local -type f -exec rm {} \;
#find /var/qmail/queue/intd -type f -exec rm {} \;
#find /var/qmail/queue/todo -type f -exec rm {} \;
#find /var/qmail/queue/remote -type f -exec rm {} \;
#qmailctl start
qmailctl stop
find /var/qmail/queue/mess -type f -exec rm {} \;
find /var/qmail/queue/info -type f -exec rm {} \;
find /var/qmail/queue/local -type f -exec rm {} \;
find /var/qmail/queue/intd -type f -exec rm {} \;
find /var/qmail/queue/todo -type f -exec rm {} \;
find /var/qmail/queue/remote -type f -exec rm {} \;
qmailctl start
==================================
command for removing spam message with unique words.
==================================
eg : qmail-remove -r -q /var/qmail/queue/ -p usuarios -i -v
where ‘usuarious’ is the unique word contained in the spam mails. Replace
it with the word that your spam messages contains.
===================================
Restarting ftp service.
service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@host ~]# service xinetd status
xinetd (pid 23815) is running…
[root@host ~]# lsof -i tcp:21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME xinetd 23815 root 5u IPv4
552944287 TCP *:ftp (LISTEN)
./f-prot -verno check for doctor web version.
/usr/local/f-prot/tools/
./check-updates.pl
===============
redirecting a domain into a folder.
RewriteEngine on
RewriteBase /
RewriteRule ^$ /shop/ where shop is the folder name.
===============
Useful vhost.conf entry and .htaccess entries.
==================
php_value magic_quotes_gpc 1
php_value allow_url_fopen 1
php_value register_globals 0
php_value session.cookie_lifetime 0
php_value session.cookie_secure 0
php_value session.name PHPSESSID
php_value session.referer_check 0
==================
Restoring a database using the bbackupquery.
==============
bbackupquery
cd var-lib-mysqldumps
echo “ls -dot var-lib-mysqldumps” | bbackupquery > results
cat results | grep pn.sql.gz
select according to date
cat results | grep pn.sql.gz | wc -l
get -i 0015be13 uspn.sql.gz
Restoring files and directories
IF you want to restore a file or a directory , you must be logged on the
server where the problem domain is.
Then type bbackupquery , this will automatically connect you on the
backup server .
After this type help to see a list of commands for future “help” and
“help command” for a command describe .
Type “ls” to view the current directories and “cd” to change the current
directory and go to the problem domain.you can view old files and
directory
with the command “ls -dot ”
IF you see something like 001bea42 f–o– 2007-04-27T05:48:58 index.html
this is an old files, there is f–o– “o” from old.Old directories has a
form of -dX— .
For directories restore type ” restore -r directory newdirectory ”
And for a single file restore type get -i id file .
ID is if you look at the above example is 001bea42 , so a restore of
that file will be done by typing : ” get -i 001bea42 index.html ”
==============
queries for getting the username and password for a particular domain
===========
select cl_id from domains where name=’test.com’; #gets client ID from
domain name
select login, account_id from clients where id=’145′; #gets account
ID and login from client ID
select password from accounts where id =’2761′; #gets password from
account ID
===========
Plesk log files.
=============
/var/log/mysqld.log mysql
/var/log/httpd/error_log http
/var/log/httpd/access_log http
/var/log/httpd/suexec_log http
/var/log/mailman mailman
/usr/local/psa/var/log/maillog maillog
=============
Important configuration files on plesk.
===============
/var/log/mysqld.log mysql
/var/log/httpd/error_log http
/var/log/httpd/access_log http
/var/log/httpd/suexec_log http
/var/log/mailman mailman
/usr/local/psa/var/log/maillog maillog
[22:17:17 plesk]$ cat conffiles
/var/named/run-root/etc/named.conf named
/var/named/run-root/var/ db files
/var/qmail/mailnames mailbox
/etc/psa/psa.conf plesk
/etc/psa/.psa.shadow plesk passwd
===============
Useful Commands
How to find out the user login of a database
==================================================
# To find out dom_id of the domain
select id from domains where name=’jasonreech.net’;
# To find out the databases, using dom_id
select * from data_bases where dom_id=’
# To find out user login from db_id
select login from db_users where db_id=’
Apache configuration and log files locations
======================================================
# Main apache configuration files
/etc/httpd/conf/httpd.conf
# Users apache configuration file is included in
/etc/httpd/conf.d/*_psa_httpd.conf
# Users apache configuration files
Include /home/httpd/vhosts/
Ex:- /home/httpd/vhosts/jasonreech.net/conf/httpd.include
# Apache’s log file is located in
/var/log/httpd/error_log
# Apache include files directory
/etc/httpd/conf.d/
# Aapche binary file
/usr/sbin/httpd
Qmail configuration and log files locations
====================================================
# qmail directory
/var/qmail
# Location of qmail maildirs
/var/qmail/mailnames/
# Log file location
/usr/local/psa/var/log/maillog
# Binary directory
/var/qmail/bin/
My Sql configuration file and log location
====================================================
# location of mysql
/var/lib/mysql
# Configuration File
/etc/my.cnf
# Log file
/var/log/mysqld.log
# Binary file
/usr/bin/mysql
BIND configuration file
============================
# Configuration File
/var/named/run-root/etc/named.conf
# Zone file location
/var/named/run-root/var/
Plesk configuration files
=============================
# Plesk admin password is located in
/etc/psa/.psa.shadow
#This is the same password for mysql root user
# plesk configuration file
/etc/psa/psa.conf
# plesk directory
/usr/local/psa
# Directory for the config dile is
/usr/local/psa/etc
#postgresql directory
/var/lib/pgsql/data
FTP configuration files and logs
=====================================
# FTP configuration file is
/etc/proftpd.conf
# FTP log file
/usr/local/psa/var/log/xferlog
# FTP bianry file
/usr/bin/ftp
Awstatics configurtion files and logs
=========================================
# Configuration file location
/etc/awstats/awstats.com
# Log file are located
/var/log/httpd/access_log
# Domains access logs
/home/httpd/vhosts/
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/usr/local/psa/admin/bin/websrvmng -a
# create configuration files for all domains
/usr/local/psa/admin/bin/websrvmng -u –reconfigure-vhost
–vhost-name=
# webserver reconfiguration for one given host
/usr/local/psa/admin/bin/websrvmng -o =stop webserver
/usr/local/psa/admin/bin/websrvmng -p =start webserver
/usr/local/psa/admin/bin/websrvmng -r =restart websever
/usr/local/psa/admin/bin/websrvmng -s =webserver status
/usr/local/psa/admin/bin/webstatmng –set-configs
–stat-prog=(webalizer|awstats) –domain-name=
# generate webalizer or AWStats config for
/usr/local/psa/admin/bin/timemng –set-system-time –time=
# set system time
/usr/local/psa/admin/bin/timemng –get-system-time
# get system time
/usr/local/psa/admin/bin/timemng –set-timezone –timezone=
# set time zone
Thursday, June 10, 2010
Server Hack Analysis Tools
Ethereal Tool
=============
Ethereal is used by network professionals around the world for troubleshooting, analysis, software and protocol development, and education. It has all of the standard features you would expect in a protocol analyzer, and several features not seen in any other product. Its open source license allows talented experts in the networking community to add enhancements. It runs on all popular computing platforms, including Unix, Linux, and Windows.
RPM Download Link: http://www.ethereal.com/distribution/rpms/
=============
Ethereal is used by network professionals around the world for troubleshooting, analysis, software and protocol development, and education. It has all of the standard features you would expect in a protocol analyzer, and several features not seen in any other product. Its open source license allows talented experts in the networking community to add enhancements. It runs on all popular computing platforms, including Unix, Linux, and Windows.
RPM Download Link: http://www.ethereal.com/distribution/rpms/
Tuesday, June 1, 2010
Network file system commands for Mounting and Unmounting
Network file system commands for Mounting and Unmounting
=================================================================
mount -t nfs root@:/home/biostar/public_html/upload /home/user/add
mount -t nfs 206.108.48.66:/home/biostar/public_html/upload /home/biostar/public_html/upload
umount -f nfs 206.108.48.58:/home/biostar/public_html/upload /home/biostar/public_html/add
/home/user/upload (rw,sync,no_root_squash)
/home/biostar/public_html/upload (rw,sync,no_root_squash)
=================================================================
mount -t nfs root@:/home/biostar/public_html/upload /home/user/add
mount -t nfs 206.108.48.66:/home/biostar/public_html/upload /home/biostar/public_html/upload
umount -f nfs 206.108.48.58:/home/biostar/public_html/upload /home/biostar/public_html/add
/home/user/upload (rw,sync,no_root_squash)
/home/biostar/public_html/upload (rw,sync,no_root_squash)
Changing the Directory Permissions
This command will search and update the Directory Permissions
=============================================================
find . -type d -user nobody -exec chown archer.archer {} \;
find . -type f -perm 777 -exec chmod 644 {} \;
find . -type f -perm 755 -exec chmod 644 {} \;
Command for search the nobody user
===================================
find . -type f -user nobody -exec chown fdfdfd.fdfdfd {} \;
=============================================================
find . -type d -user nobody -exec chown archer.archer {} \;
find . -type f -perm 777 -exec chmod 644 {} \;
find . -type f -perm 755 -exec chmod 644 {} \;
Command for search the nobody user
===================================
find . -type f -user nobody -exec chown fdfdfd.fdfdfd {} \;
Sunday, May 30, 2010
Mysql Crash Recovery
Mysql Crash Recovery
1) Verify the current process and status
========================================
ps auxf | grep mysql By this command we can find any mysql process in the server.
ps -aux | grep mysql
The -a option tells ps to list the processes of all users on the system rather than just those of the current user, with the exception of group leaders and processes not associated with a terminal. A group leader is the first member of a group of related processes.
The -u option tells ps to provide detailed information about each process.
The -x option adds to the list processes that have no controlling terminal, such as daemons, which are programs that are launched during booting (i.e., computer startup) and run unobtrusively in the background until they are activated by a particular event or condition.
The output of the command is
>ps -aux | grep mysql
root@cpmouse [/var/lib/mysql]# ps auxf | grep mysql
root 16673 0.0 0.0 61128 712 pts/1 S+ 18:30 0:00 \_ grep mysql
root 11142 0.0 0.0 10796 1160 ? S 06:24 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/cpmouse.ecdsystem.com.pid
mysql 11163 39.2 1.4 442900 59584 ? Sl 06:24 284:47 \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/cpmouse.ecdsystem.com.pid --skip-external-locking
To check the mysql current processes
ps -ef |grep mysql|awk '{print $2}'
This command will grep the second column only.
2)Verify /etc/my.cnf settings
[mysqld]
safe-show-database
old-passwords = 1
skip-name-resolve
skip-locking
set-variable = max_connections=2000
set-variable = interactive_time=30
set-variable = wait_timeout=30
set-variable = max_connect_errors=2000
3)Have a look out the mysqld Permission settings
=================================================
The Permission should be in mysql format
chown mysql.mysql /var/run/mysqld
We have to change the ownership for all the mysql processes.
chown -R mysql.mysql /var/run/mysqld
root@cpmouse [/var/lib/mysql]# ll
total 20556
drwxr-xr-x 4 mysql mysql 4096 May 30 04:29 ./
drwxr-xr-x 29 root root 4096 May 30 04:21 ../
-rw-rw---- 1 mysql root 5378 May 30 04:29 cpmouse.ecdsystem.com.err
-rw-rw---- 1 mysql mysql 5 May 30 04:29 cpmouse.ecdsystem.com.pid
-rw-rw---- 1 mysql mysql 5 May 30 04:28 cpmouse.pid
-rw-rw---- 1 mysql mysql 10485760 May 30 04:29 ibdata1
-rw-rw---- 1 mysql mysql 5242880 May 30 04:29 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 May 30 04:26 ib_logfile1
drwx--x--x 2 mysql mysql 4096 May 30 04:22 mysql/ - contain mysql user privilege
srwxrwxrwx 1 mysql mysql 0 May 30 04:29 mysql.sock=
drwxr-xr-x 2 mysql mysql 4096 May 30 04:21 test/
/var/lib/mysql - remove
/usr/sbin/mysqd - remove
grant all privileges on virus_UC.* to virus_UC@localhost identified by '04241988';
/scripts/mysqlup --force
/var/cpanel/cpanel.config
1) Verify the current process and status
========================================
ps auxf | grep mysql By this command we can find any mysql process in the server.
ps -aux | grep mysql
The -a option tells ps to list the processes of all users on the system rather than just those of the current user, with the exception of group leaders and processes not associated with a terminal. A group leader is the first member of a group of related processes.
The -u option tells ps to provide detailed information about each process.
The -x option adds to the list processes that have no controlling terminal, such as daemons, which are programs that are launched during booting (i.e., computer startup) and run unobtrusively in the background until they are activated by a particular event or condition.
The output of the command is
>ps -aux | grep mysql
root@cpmouse [/var/lib/mysql]# ps auxf | grep mysql
root 16673 0.0 0.0 61128 712 pts/1 S+ 18:30 0:00 \_ grep mysql
root 11142 0.0 0.0 10796 1160 ? S 06:24 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/cpmouse.ecdsystem.com.pid
mysql 11163 39.2 1.4 442900 59584 ? Sl 06:24 284:47 \_ /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/cpmouse.ecdsystem.com.pid --skip-external-locking
To check the mysql current processes
ps -ef |grep mysql|awk '{print $2}'
This command will grep the second column only.
2)Verify /etc/my.cnf settings
[mysqld]
safe-show-database
old-passwords = 1
skip-name-resolve
skip-locking
set-variable = max_connections=2000
set-variable = interactive_time=30
set-variable = wait_timeout=30
set-variable = max_connect_errors=2000
3)Have a look out the mysqld Permission settings
=================================================
The Permission should be in mysql format
chown mysql.mysql /var/run/mysqld
We have to change the ownership for all the mysql processes.
chown -R mysql.mysql /var/run/mysqld
root@cpmouse [/var/lib/mysql]# ll
total 20556
drwxr-xr-x 4 mysql mysql 4096 May 30 04:29 ./
drwxr-xr-x 29 root root 4096 May 30 04:21 ../
-rw-rw---- 1 mysql root 5378 May 30 04:29 cpmouse.ecdsystem.com.err
-rw-rw---- 1 mysql mysql 5 May 30 04:29 cpmouse.ecdsystem.com.pid
-rw-rw---- 1 mysql mysql 5 May 30 04:28 cpmouse.pid
-rw-rw---- 1 mysql mysql 10485760 May 30 04:29 ibdata1
-rw-rw---- 1 mysql mysql 5242880 May 30 04:29 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 May 30 04:26 ib_logfile1
drwx--x--x 2 mysql mysql 4096 May 30 04:22 mysql/ - contain mysql user privilege
srwxrwxrwx 1 mysql mysql 0 May 30 04:29 mysql.sock=
drwxr-xr-x 2 mysql mysql 4096 May 30 04:21 test/
/var/lib/mysql - remove
/usr/sbin/mysqd - remove
grant all privileges on virus_UC.* to virus_UC@localhost identified by '04241988';
/scripts/mysqlup --force
/var/cpanel/cpanel.config
Subscribe to:
Posts (Atom)