脚本练习3
1.写一个脚本进行nginx日志统计,得到访问ip最多的前10个(nginx日志路径:/home/logs/nginx/default/access.log
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -r
2.创建一个mysql数据库KW(字符集utf8,类型innodb),表名(User),表结构为:
字段名称 描 述
ID int(11)
Name varchar(20)
Birth varchar(10)
Sex int(2)
Description varchar(50)
并用shell脚本实现将mysql数据库KW进行每天定时备份,备份目录存放到/data/backup目录里,且文件名为如下形式kw_yymmdd.db.tar.gz,其中yy为年,mm为月,dd为日
数据库
CREATE DATABASE KW CHARACTER SET utf8;
USE KW;
CREATE TABLE User (
ID int(11) NOT NULL AUTO_INCREMENT,
Name varchar(20) NOT NULL,
Birth varchar(10),
Sex int(2),
Description varchar(50),
PRIMARY KEY (ID)
) ENGINE=InnoDB;
INSERT INTO User (Name, Birth, Sex, Description) VALUES
('Alice', '1990-01-01', 1, 'First user'),
('Bob', '1991-02-02', 2, 'Second user'),
('Charlie', '1992-03-03', 1, 'Third user'),
('David', '1993-04-04', 2, 'Fourth user'),
('Eve', '1994-05-05', 1, 'Fifth user'),
('Frank', '1995-06-06', 2, 'Sixth user'),
('Grace', '1996-07-07', 1, 'Seventh user'),
('Henry', '1997-08-08', 2, 'Eighth user'),
('Ivy', '1998-09-09', 1, 'Ninth user'),
('Jack', '1999-10-10', 2, 'Tenth user');
代码
if [ ! -d /data/backup ]
then
mkdir -p /data/backup
fi
date=`date +%F`
`mysqldump -u root KW | gzip > /data/backup/KW${date}.db.tar.gz`
3.写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 在非空行前面加一个"AAA",在行尾加一个"BBB",即将内容为11111的一行改为:AAA11111BBB
[root@192 homework]# sed -i '/^$/d; s/\(.*\)/AAA\1BBB/' /tmp/input.txt
4.找到/tmp/目录下面的所有名称以"_s1.jpg"结尾的普通文件,如果其修改日期在一天内,则将其打包到/tmp/back.tar.gz文件中
[root@192 homework]# find /tmp/ -type f -name '*_s1.jpg' -atime -1 | xargs tar -czvf /tmp/back.tar.gz
5.写出SHELL函数RevertInput,函数必须获取三个参数,然后将三个参数倒序echo打印出来,函数必须检查参数个数的合法性,如果参数非法,打印”Illegal parameters”,对于下面的输入:
RevertInput “this is para1” para2 para3
应该输出:
para3
para2
this is para1
RevertInput(){
for ((i=3;i>0;i--)){
echo ${!i}
}
}
RevertInput "this is para1" para2 para3