Difference between revisions of "Scripts"
Rootadminacc (talk | contribs) m (→Notes) |
Rootadminacc (talk | contribs) |
||
Line 212: | Line 212: | ||
echo "There are a total of $TOTAL port 80 connections." | echo "There are a total of $TOTAL port 80 connections." | ||
uptime | awk '{print $8,$9,$10,$11,$12}' | uptime | awk '{print $8,$9,$10,$11,$12}' | ||
tail - | tail -10 $ACCESSLOG | grep "07/Feb/2013" | awk '{ x = $2 " " $4 " " $7 ; printf "%-15s %-20s \n", $1, x, $7}'</pre> | ||
Revision as of 11:38, 7 February 2013
These are also located at http://serverkb.co.uk/tools/
Read the README.txt for further information on these tools.
Plesk Accounts (1)
The accounts script is only used on Linux servers with Plesk below version 11 (11+ encrypts passwords) and can retrieve Plesk, FTP and email passwords. To use it you need to do the following within SSH:
wget http://serverkb.co.uk/tools/accounts.sh ; chmod +x accounts.sh ./accounts.sh
Written by Leon_Teale, modified by Byron Galietta and Sam Teale.
Advanced Service Monitor (2)
This is a more advanced version of the script below, giving more output and debug possibilities.
Apache Monitor (3)
This script will start a specific service that you specify. By default it will do Apache, the Linux web server. To use it, do the following:
cd / root ; wget http://serverkb.co.uk/tools/apachemon.sh ; chmod +x apachemon.sh crontab -e
In here add:
10 * * * * /root/apachemon.sh
Edit the file and replace the admin email address with yours by doing:
vim apachemon.sh
Replace apache2 with httpd within it if your server calls Apache httpd instead.
To start another service edit the following field:
service="apache2"
For example for MySQL have service="mysql" instead (or mysqld)
And then change all references to that service e.g. change apachedown to mysqldown
Database backup (5)
Plesk server database backups (7)
This backs up all databases as .sql files and a .tar.gz containing all excluding information_schema, atmail and horde on a Plesk Linux server and emails you them.
Only .sql files (8)
Use this script if you only want .sql files in separate emails and not the extra one with all MySQL databases compressed into a .tar.gz.
For both of the above:
apt-get install mutt
or
yum install mutt
chmod 755 /sent ; chmod 755 /root/sent vim /etc/passwd
Change the root user's home directory to / instead of /root
crontab -e
* * * * 0 :> /root/sent
A solution may be needed for:
postdrop: warning: uid=0: File too large sendmail: fatal: root(0): message file too big Error sending message, child exited 75 (Deferred.). Could not send the message.
No email version (4)
Disk Limit Monitor (9)
This simply notifies you via email when your disk space reaches 90%. To run and install it do the following:
cd /root ; wget http://serverkb.co.uk/tools/disklimit.sh ; chmod +x disklimit.sh
Edit the file and replace the ADMIN email address with yours by doing:
vim disklimit.sh crontab -e
In here add:
45 * * * * /root/disklimit.sh
Domain to IP conversion (10)
This finds the IP addresses for all domains in /var/www/vhosts (this can be edited) and outputs the results to screen and a file.
Enable the EPEL repository (11)
This will take into account if the Operating System is CentOS or Ubuntu.
Extra Logging (12)
Extra Logging 2 (for Plesk servers)
Registrar finder for Plesk servers (14)
Once edited with the registrar of your choice this will get the list of your domains and look up the domain registar. If it matches then it will place these in a file in the same directory you are in called our_registrar. Some server configuration has to be done first which can be found here: http://serverkb.co.uk/wiki/Linux#WHOIS_script
Disable mail for multiple domains in Plesk (15)
Mail Queue Count and Mail Warning (16 + 17)
These go together.
mailqueuecount.sh gets a queue status once a day.
mailwarning.sh runs every five minutes and will email you if your qmail mail queue is over the limit you set within it.
Install mcrypt (18)
This will also automatically enable the EPEL repository if needed.
Engine X Monitor (19)
This is a script to automatically monitor and check the new web server used by Plesk 11+ on Linux servers. To use it, do the following:
cd /root ; wget http://serverkb.co.uk/tools/nginxmon.sh ; chmod +x nginxmon.sh crontab -e #In here add: 10 * * * * /root/nginxmon.sh #Edit the file and replace the admin email address with yours by doing: vim nginxmon.sh
Old Extra Logging (20)
Red5 Media Server tar.gz (25)
See the following link for what Red5 is/does: http://www.red5.org/
Plesk Monitor/Starter (26)
This is a work in progress and is meant to start a specific service, in this case, Plesk.
Slow Query Log for MySQL (27)
HN
Snow Script (28)
wget http://serverkb.co.uk/tools/snow.sh chmod +x snow.sh ./snow.sh
This puts snowfall on your screen! :) To quit, do:
CTRL + C
CTRL + L
SQL Backup for chroot (29)
This backs up databases from a chrooted Linux environment and places them in a folder called /sqlbak
Before using it please do:
chroot /usr/fs
Email version (30)
UpdateDB (31)
This updates the linux index of a server if it does not already so any knew files can be found using the linux comand locate <filename>. To use it you need to do the following:
cd /root ; wget http://serverkb.co.uk/tools/updatedbscript.sh ; chmod +x updatedbscript.sh crontab -e #In here add: 5 * * * * /path/to/updatedbscript.sh
Notes
Remove spaces between file names
Do not use for-loops to process lists of unknown length, like a directory listing. If the list grows too long it will exceed your maximum line length (see syslimits.h) and your code will break. Using a while-loop removes this risk.
Realtime monitor of Apache accesslog
Run this with watch -n 2 ./realtime.sh
#!/bin/bash ACCESSLOG="/var/log/apache2/access_log" TOTAL=`netstat -pant | grep :80 | wc -l` echo "There are a total of $TOTAL port 80 connections." uptime | awk '{print $8,$9,$10,$11,$12}' tail -10 $ACCESSLOG | grep "07/Feb/2013" | awk '{ x = $2 " " $4 " " $7 ; printf "%-15s %-20s \n", $1, x, $7}'