HTTP://www.raoset.com/jasonpruim112 and and want to rewrite to a script
HTTP://www.raoset.com/purl/purl.php?purl=jasonpruim112
add_log_rotation ()
{
read -p "Enter your domain name: " d
read -p "Enter the number of times you want logs to be rotated : " r
read -p "Enter the size of you log size " s
tmp=` echo $d |sed s/\.com//g `
config_file="/etc/logrotate.conf"
if [ -d /websites/"$d" ]; then
if [ -z "$(sed -n
"/\#apache_logs_${d}\#/,/\#apache_logs_${d}\#/p" /etc/logrotate.conf)"
]; then
cat >> $config_file << _eof_
######################apache_logs_$d###########################
"/websites/$d/logs/$tmp.sys.qualiproj.access_log"
/websites/$d/logs/$tmp.sys.qualiproj.error_log {
rotate $r
size= $s
sharedscripts
postrotate
/sbin/killall -HUP httpd
endscript
}
#####################apache_logs_$d###########################
_eof_
else
echo -e "logrotate for this domian already exist"
fi
else
echo -e " the domain does not exist "
fi
}
delete_log_rotation ()
{
read -p "Enter your domain name: " d
tmp=`echo $domain |sed s/\.com//g `
if [ -d /websites/"$d" ]; then
if [ -n "$(sed -n
"/\#apache_logs_${d}\#/,/\#apache_logs_${d}\#/p" /etc/logrotate.conf)"
]; then
sed -i "/\#apache_logs_${d}\#/,/\#apache_logs_${d}\#/d" /etc/logrotate.conf
else
echo -e "log rotate does not exist for this domain"
fi
else
echo -e "The domain does not exist"
fi
}
edit_log_rotation ()
{
read -p "Enter your domain name: " d
read -p "Edit the number of times you want logs to be rotated : " r
read -p "Edit the size of your log sise " s
tmp=`echo $domain |sed s/\.com//g `
if [ -d /websites/"$d" ]; then
if [ -n "$(sed -n
"/\#apache_logs_${d}\#/,/\#apache_logs_${d}\#/p" /etc/logrotate.conf)"
]; then
sed -i "/\#apache_logs_${d}\#/,/\#apache_logs_${d}\#/d" /etc/logrotate.conf
cat >> $config_file << _eof_
######################apache_logs_$d###########################
"/websites/$d/logs/$tmp.sys.qualiproj.access_log"
/websites/$d/logs/$tmp.sys.qualiproj.error_log {
rotate $r
size=$s
sharedscripts
postrotate
/sbin/killall -HUP httpd
endscript
}
#####################apache_logs_$d###########################
_eof_
else
echo -e "log rotate does not exist for this domain"
fi
else
echo -e "The domain does not exist"
fi
}
read -p "Do you want to add, delete, or edit the logs rotation: " l
case $l in
add ) add_log_rotation
;;
delete ) delete_log_rotation
;;
edit ) edit_log_rotation
;;
* ) echo -e "Please type add delete or edit"
esac
--
This step-by-step tutorial shows how to set up Network Address Translation (NAT) with Open Source Linux operating system and iptables firewall. This will allow your system to act as gateway and to provide Internet access to multiple hosts in Local Area Network (LAN) using a single public IP address.
Requirements
1. Hardware server with 2 (two) network interface cards (NICs).
2. Any Linux distribution (get more information at DistroWatch.com).
3. Linux kernel with networking and iptables support.
4. iptables package (you can find latest release at NetFilter's Download page).
Basic definitions
aa.aa.aa.aa is Wide Area Network (WAN) IP address (bb.bb.bb.bb is WAN netmask).
cc.cc.cc.cc is LAN IP address (e.g. 192.168.0.1 or 10.0.0.1), dd.dd.dd.dd is LAN netmask (e.g. 255.255.255.0).
ee.ee.ee.ee is default gateway for Internet connection.
eth0 is hardware name of the NIC connected to WAN base.
eth1 is name of LAN connected NIC.
Step-by-step set up
1. Apply two NICs to hardware server.
2. Verify that both NICs are recognized by Linux well and are fully workable:
dmesg | grep eth0 dmesg | grep eth1
the output may vary but in most cases it would be like following one:
eth1: RealTek RTL8139 at 0xe0830000, 00:30:4f:3b:af:45, IRQ 19 eth1: Identified 8139 chip type 'RTL-8100B/8139D' eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
Similar output should be for eth0 NIC.
To verify that NICs are recognized by Linux as networking devices use the following commands:
ifconfig eth0 ifconfig eth1
In case of success the output will be as follows:
eth0 Link encap:Ethernet HWaddr 00:50:56:C0:00:08 inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:41 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
You can find full manual page for ifconfig command here.
3. Configure WAN interface (eth0) to get Internet connection:
ifconfig eth0 aa.aa.aa.aa netmask bb.bb.bb.bb
e.g.
ifconfig eth0 123.45.67.89 netmask 255.255.255.248
WAN IP address and netmask should be provided by your ISP.
4. Set up WAN NIC settings to apply after server start up.
Configuration files containing NIC settings may have different syntax and location in various distributions. For such distributions as RedHat, Fedora, Centos and similar ones eth0 configuration file is at /etc/sysconfig/network-scripts/ifcfg-eth0. In Debian, Ubuntu NIC settings are located at single file /etc/network/interfaces.
To edit configuration files use any preferred text editor like vim, GNU nano or any other.
After editing /etc/sysconfig/network-scripts/ifcfg-eth0 should look as follows:
DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=aa.aa.aa.aa # e.g. 123.45.67.89 NETMASK=bb.bb.bb.bb # e.g. 255.255.255.0 GATEWAY=ee.ee.ee.ee # e.g. 123.45.67.1 HWADDR=00:30:4f:3b:af:45 # MAC address (optional entry)
After making changes to /etc/network/interfaces section regarding eth0 NIC should looks like:
auto eth0 iface eth0 inet static address aa.aa.aa.aa netmask bb.bb.bb.bb gateway ee.ee.ee.ee
Related links: detailed syntax description of /etc/sysconfig/network-scripts/ifcfg-ethN, manual page of /etc/network/interfaces.
5. Set up LAN NIC settings to apply after server start up. This step requires operations similar to previous step.
Edit /etc/sysconfig/network-scripts/ifcfg-eth1 and make sure that it looks like:
DEVICE=eth1 ONBOOT=yes BOOTPROTO=static IPADDR=cc.cc.cc.cc # e.g. 192.168.0.1 NETMASK=dd.dd.dd.dd # e.g. 255.255.255.0 HWADDR=00:50:8d:d1:24:db # MAC address of LAN NIC (optional entry)
If you are using Debian or related Linux distribution, edit /etc/network/interfaces (see previous step):
auto eth1 iface eth1 inet static address cc.cc.cc.cc netmask dd.dd.dd.dd
6. Set up Domain Name System servers IP addresses by editing /etc/resolv.conf:
nameserver 203.145.184.13 nameserver 203.145.184.12
7. Enable IP Forwarding:
echo 1 > /proc/sys/net/ipv4/ip_forward
8. Set up NAT with iptables:
To delete existing rules from every iptables table, execute the following commands:
iptables -F iptables -t nat -F iptables -t mangle -F
Related links: official iptables documentation.
Enable NAT by commands:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth1 -j ACCEPT
8. Configure LAN clients to access Internet via described gateway:
Use clients' operating system tools to set up the following TCP/IP settings:
IP address: from the same network as cc.cc.cc.cc (you can use IP/Subnet calculator to get it)
Netmask: dd.dd.dd.dd
DNS: ff.ff.ff.ff
Gateway: cc.cc.cc.cc
Example:
IP address: 192.168.0.7 Netmask: 255.255.255.0 DNS: 209.160.67.13 Gateway: 192.168.0.1
Done!!!
The text editor vi, is supplied with all Linux distributions. It is a difficult editor to come to grips with initially, but once you do the rewards are vast. The editor is quite intuitive once you get the hang of it. The main thing to remember when using it is that the very last line on the screen (Or window that the editor is running in), is the status line, much like the status bar at the bottom of Netscape, or *cough* Internet Exlporer. It will tell you there what mode your in, and what operations have been completed - such as save or quit.
Lets start by firing up the editor with a blank text file. From the command line, type vi blah. Another cool thing about Linux is that you dont need to supply the legacy ".xxx" extensions given to us by DOS, and Windows. The editor will appear on-screen, with a tilde, ~, on evey line, and at the bottom of the screen it says "blah" [new file]. If you want to put anything into this file, you have to put vi into insert mode. Do this by typing the letter 'i' on its own. "-- INSERT --" appears on the bottom of the screen. Now you can type in anything you want. Try typing "Hello", and then on a new line "World". Now try going back up to the line above, using the cursor keys and try to delete Hello. You wont be able to. When you give a Carraige Return (Press Enter in other words), the text on that line becomes static. If you want to delete it, heres how.
Press your Esc button on the top left of the keyboard, and the "-- INSERT --" at the base dissapears. Vi is ready to accept a new command. The only thing here is that vi will only delete what is in front of the cursor, let me show you. Bring the cursor to the start of Hello, and press the x key once. Now only 'ello' remains. This doesnt really make any sense, so we'll delete the line altogether. Press 'd' twice in quick sucession. Now we have the word 'World' on its own. Press 'i' and insert "Hello" again. This time, leave the text in insert mode. Press the "Insert" key on your keyboard, its above the cursor keys. The "-- INSERT --" at the base of the screen has been replaced with "-- REPLACE --". Now type the word "Nurse" over the existing "World". Press Esc again to return to the ready mode.
Vi has a search tool too, which I find indispensable. From the ready mode, type in a slash, /, and input the text you want to look for. Remember, since Linux is case sensitive, looking for "money" is not the same as looking for "Money".
Well, what about saving the file, or quitting without saving? What about just quitting? Its easy. From the ready mode, type in ":w" to write the file ... you already supplied the file name when you typed 'vi blah' earlier. The editor will return this on the status line : "blah" [New File] 1 line, 12 characters written. Lets quit out of it altogether. Type in ":q". You have been returned to the command prompt. There was an easier way of doing that ... from the ready mode in the editor, you could have just typed in, in capitals, "ZZ" ... this saves the file and quits. If you had wanted to quit without saving the changes, you could have just typed in ":q!", and nothing would have saved ... blah wouldn't have existed.
Thats the basics of vi, but you could always 'man vi' from the command prompt ...
search_pattern ()
{
read -p " Enter the path where your text file is loscated: " p
read -p "Enter the pattern you want to serch: " pat
pattern=`sed -n "\|$pat|p" $p`
if [ -n "$pattern" ]; then
echo -e "$pattern"
else
echo -e "######### The pattern cannot be found #########"
fi
}
replace_pattern ()
{
read -p " Enter the path where your text file is loscated: " p
read -p "Enter the pattern you want to serch: " pat
read -p "Enter the pattern you want to replace: " reppat
pattern=`sed -n "\|$pat|p" $p`
if [ -f "$p" ]; then
if [ -n "$pattern" ]; then
sed -i "s|$pat|$reppat|" $p
else
echo -e "######### the pattern is not found ############# "
fi
else
echo -e "############ the file is not found #############"
fi
}
read -p " What do you ant to do: [ search or replace ]: " t
case $t in
search ) search_pattern
;;
replace ) replace_pattern
;;
* ) echo -e "please enter search or replace"