关于Linux上部署tomcat JDK MYSQL 日志分割和日志清除相关服务

一、安装jdk
1、jdk解压
1.命令行进入/home/java 文件夹
cd /home/java
2.解压:tar zxvf 压缩包名称 (例如:tar zxvf jdk-8u221-linux-x64.tar.gz)后面的名称可以只输入一个tar zxvf j,然后使用Tab按键自动补全文件名
3.删除压缩包:rm -f 压缩包名称 (例如 rm -f jdk-8u221-linux-x64.tar.gz)
2、环境变量配置
1、编辑/etc/profile文件
vim /etc/profile
2、按Insert或者I键,切换成编辑模式。
找到内容末尾,按图片输入下面一段话。

在unset i的输入
export JAVA_HOME=/home/java/jdk1.8.0_221
export CLASSPATH=.: J A V A H O M E / j r e / l i b / r t . j a r : JAVA_HOME/jre/lib/rt.jar: JAVAHOME/jre/lib/rt.jar:JAVA_HOME/lib/dt.jar: J A V A H O M E / l i b / t o o l s . j a r e x p o r t P A T H = JAVA_HOME/lib/tools.jar export PATH= JAVAHOME/lib/tools.jarexportPATH=PATH:$JAVA_HOME/bin
#(!!!注意:JAVA_HOME的路径是你实际解压后的JDK的路径,千万别写错了)
3、按Esc退出编辑模式,输入:wq保存并退出

4、生效环境变量
对于/etc/profile编写完成之后是不够的,还需要最后一个步骤,就是让刚刚我们修改的文件变成有效起来,所以我们再输入一个命令,让修改生效。
生效命令:source /etc/profile
3、验证安装成功与否
java -version
显示版本号就是安装成功了
三、安装Tomcat
1、tomcat解压
1、命令行进入/usr/local/deploySoft 文件夹
cd /usr/local/deploySoft
2、解压:tar zxvf 压缩包名称 (例如:tar zxvf apache-tomcat-8.5.46.tar.gz)后面的名称可以只输入一个tar zxvf j,然后使用Tab按键自动补全文件名
3、删除压缩包:rm -f 压缩包名称 (例如 rm -f apache-tomcat-8.5.46.tar.gz)
2、启动Tomcat
1、cd tomcat
2、解析完成后即可以启动Tomcat,检查是否安装成功 /usr/local/tomcat/bin/startup.sh

四、安装mysql
1、解压
tar -xvf mysql-server_5.7.28-1ubuntu16.04_amd64.deb-bundle.tar
然后把解压后的文件改为mysql

1.首先使用命令sudo -s获得root权限,后面执行任何命令都不需要每次输入密码了。用whereis mysql查看当前是否有安装MySQL,有就卸载,没有就继续。如下图,本机之前没有安装MySQL,那个显示的路径是我创建的一个文件夹,为了放mysql.

2.将下载好的MySQL使用命令"cp mysql-server_8.0.11-1ubuntu16.04_amd64.deb-bundle.tar /usr/local/mysql"把MySQL拷贝到自己指定的路径文件夹mysql里面,然后进到mysql里面对文件进行解压,使用命令"tar -xvf mysql-server_8.0.11-1ubuntu16.04_amd64.deb-bundle.tar" 对 MySQL解压,解压后得到如下几个文件。

3.依次执行下面这些命令:
sudo dpkg -i mysql-common_5.7.28-1ubuntu16.04_amd64.deb
sudo dpkg -i libmysqlclient20_5.7.28-1ubuntu16.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_5.7.28-1ubuntu16.04_amd64.deb

4.安装libaio1:
sudo apt-get install libaio1
sudo apt-get install libtinfo5
sudo dpkg -i mysql-community-client-core_5.7.28-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-community-client_5.7.28-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-client_5.7.28-1ubuntu16.04_amd64.deb

5.执行命令 sudo apt-get update
6.执行完sudo apt-get install libmecab2 后,让设置mysql密码。

sudo dpkg -i mysql-community-sever-core_5.7.28-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-community-server_5.7.28-1ubuntu16.04_amd64.deb

7、安装后的操作:
说明:通过这种方式安装好之后开机自启动都已经配置好,和命令行上的环境变量,无需手动配置。
安装好之后会创建如下目录:
数据库目录:/var/lib/mysql/
配置文件:/usr/share/mysql(命令及配置文件) ,/etc/mysql(如:my.cnf)
相关命令:/usr/bin(mysqladmin mysqldump等命令) 和/usr/sbin
启动脚本:/etc/init.d/mysql(启动脚本文件mysql的目录)
测试:
#服务启动后端口查询
sudo netstat -anp | grep mysql

#服务管理#启动
sudo service mysql start
#停止
sudo service mysql stop#服务状态
sudo service mysql status

#连接数据库
mysql -h 127.0.0.1 -P 3306 -uroot -p123456#-h为远程IP,-P为端口号,-u为用户名,-p为密码
#测试SQL
show databases;

测试一切正常。

五、安装redis(暂时不用)
1、解压
下载完成后需要将压缩文件解压,输入以下命令解压到当前目录
tar -zvxf redis-5.0.14.tar.gz

2、编译
cd到/usr/local/redis目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容。
make MALLOC=libc

3、安装
make install

4 启动服务
根据上面的操作已经将redis安装完成了。在目录/usr/local/redis 输入下面命令启动redis
/usr/local/bin/redis-server& ./redis.conf
5、编辑 redis.conf配置文件,设置后台启动redis服务

vim redis.conf

(1)把文件中的daemonize属性改为yes(表明需要在后台运行)
(2)编辑 redis.conf配置文件,修改Redis默认密码 (默认密码为空)
(1)在配置文件中找到这一行 # requirepass foobared
(2)删除前面的注释符号#,并把foobared修改成自己的密码 或者 另起一行 requirepass 自己的密码

6、设置Redis开机启动

7、监测
查看Redis是否正在运行
1、采取查看进程方式
1 ps -aux | grep redis
结果如下图:

2、采取端口监听查看方式
1 netstat -lanp | grep 6379
结果如下图:

redis-cli
redis-cli是连接本地redis服务的一个命令,通过该命令后可以既然怒redis的脚本控制台。如下图

输入exit可以退出redis脚本控制台
关闭运行中的Redis服务
输入redis-cli 进入控制台后输入命令shutdown即可关闭运行中的Redis服务了。如下图:

6、手动改密码
1、初始化Redis密码:
在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数;
比如 requirepass test123;
(Ps:需重启Redis才能生效)
redis的查询速度是非常快的,外部用户一秒内可以尝试多大150K个密码;所以密码要尽量长(对于DBA 没有必要必须记住密码);
2、不重启Redis设置密码:
在配置文件中配置requirepass的密码(当redis重启时密码依然有效)。
1 redis 127.0.0.1:6379> config set requirepass test123
查询密码:
1
2 redis 127.0.0.1:6379> config get requirepass
(error) ERR operation not permitted
密码验证:
1
2 redis 127.0.0.1:6379> auth test123
OK
再次查询:
redis 127.0.0.1:6379> config get requirepass

  1. “requirepass”
  2. “test123”
    PS:如果配置文件中没添加密码 那么redis重启后,密码失效;
    3、登陆有密码的Redis:
    在登录的时候的时候输入密码:
    1 redis-cli -p 6379 -a test123

Redis 安装遇到的坑 stdlib.h: No such file or directory

解决方案
将源换成外国系统源卸载 gcc 重新安装 gcc 编译
apt remove gcc – 卸载 gcc
cd /etc/apt – 修改 sources.list 换成外国的源 deb http://archive/ubuntu
apt install gcc – 然后编译
如果还报错 清理编译信息或者重新解压 Redis 压缩包编译

七、Linux下Tomcat日志分割
本文主要讲述使用cronolog分割tomcat的catalina.out文件。

  1. 下载编译安装(已有文件)
    tar zxvf cronolog-1.6.2.tar.gz
    cd cronolog-1.6.2
    ./configure
    make
    make install

  2. 查看cronolog安装后所在目录(验证安装是否成功)
    which cronolog
    一般情况下显示为:/usr/local/sbin/cronolog
    如下图所示:

  3. 编辑Tomcat目录bin下的catalina.sh文件
    找到下面这个,类似这样的行有2处:
    org.apache.catalina.startup.Bootstrap “ @ " s t a r t   > " @" start \>> " @"start>"CATALINA_OUT” 2>&1 “&”
    改为
    org.apache.catalina.startup.Bootstrap “KaTeX parse error: Expected 'EOF', got '&' at position 12: @" start 2>&̲1 \ | /usr/loca…CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> /dev/null &

第一处:Tomcat是带"-security"参数的启动。
第二处:默认Tomcat启动方式,也就是else下面那部分,我们只修改这里。
另外还要把touch "$CATALINA_OUT"这样注释掉。
修改后的结果如下所示:

  1. 重启Tomcat
    重启后logs目录如下所示:

配置cronolog完成了,观察每天是否有个新的catalina.yymmdd.out的日志文件生成,定期删除日期较旧的日志文件。
八、Linux下Tomcat开机自动启动
Linux下tomcat开机自动启动有两种方法,一种是简单,一种是复杂而又专业的,使用shell脚本要实现,我们一般推荐shell脚本启动方式。下面我们分别介绍这两种方法。

1.shell脚本启动
众所周知,在Linux中设置开机自启动的服务,需要在/etc/rcX.d下挂载。除此之外还需要在/etc/init.d下些启动脚本。其实很简单,先export出所需要的环境变量,例如JAVA_HOME,JRE_HOME, CATALINA_HOME, CATALINA_BASE什么的,然后再直接调用$CATALINA_HOME/bin/startup.sh就能成功启动。

第一步:我们在/etc/init.d下新建一个文件tomcat(需要在root权限下操作)

sudo vim /etc/init.d/tomcat
写下如下代码,tomcat自启动脚本:

#!/bin/sh

chkconfig: 345 99 10

description: Auto-starts tomcat

/etc/init.d/tomcatd

Tomcat auto-start

Source function library.

#. /etc/init.d/functions

source networking configuration.

#. /etc/sysconfig/network
RETVAL=0
export JAVA_HOME=/home/java/jdk1.8.0_221
export JRE_HOME=/home/java/jdk1.8.0_221
export CATALINA_HOME=/home/java/tomcat
export CATALINA_BASE=/home/java/tomcat
start()
{
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $“Starting Tomcat”
C A T A L I N A H O M E / b i n / s t a r t u p . s h R E T V A L = CATALINA_HOME/bin/startup.sh RETVAL= CATALINAHOME/bin/startup.shRETVAL=?
echo " OK"
return $RETVAL
fi
}
stop()
{
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $“Stopping Tomcat”
C A T A L I N A H O M E / b i n / s h u t d o w n . s h R E T V A L = CATALINA_HOME/bin/shutdown.sh RETVAL= CATALINAHOME/bin/shutdown.shRETVAL=?
sleep 1
ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk ‘{print $2}’|xargs kill -9
echo " OK"
# [ $RETVAL -eq 0 ] && rm -f /var/lock/…
return $RETVAL
fi
}

case “$1” in
start)
start
;;
stop)
stop
;;

restart)
echo $“Restaring Tomcat”
$0 stop
sleep 1
$0 start
;;
*)
echo $“Usage: $0 {start|stop|restart}”
exit 1
;;
esac
exit $RETVAL

这里特别提醒注意这一句ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk ‘{print $2}’|xargs kill -9,熟悉Linux命令的人应该都清楚这句话的意义,这里就简单说下前半部分,查询root用户下tomcat的进程PID,个人根据实际情况修改。
第二步:保存退出之后,给其增加可执行权限

sudo chmod 777 /etc/init.d/tomcat

第三步:挂载
将这个shell文件的link连到/etc/rc2.d/目录下。linux的/etc/rcX.d/目录中的数字代表开机启动时不同的run level,也就是启动的顺序,Ubuntu9.10下有0-5六个level,不能随便连到其他目录下,可能在那个目录中的程序启动时Tomcat所需要的一些库尚未被加载,用ln命令将tomcat的链接链过去:sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S16Tomcat。rcX.d目录下的命名规则是很有讲究的,更具不同需要可能是S开头,也可能是K开头,之后的数字代表他们的启动顺序,详细看各自目录下的Readme文件。

sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S16tomcat

第四步:设置脚本开机自启动
把这个脚本设置成系统启动时自动执行,系统关闭时自动停止,使用如下命令:

(详见十二)

sudo apt-get install sysv-rc-conf

sudo sysv-rc-conf tomcat on

第五步:验证
执行 sudo reboot。重启之后就会发现,Tomcat已经成功运行了

九、Redis 开机启动(暂时不用)
1、设置redis.conf中daemonize为yes,确保守护进程开启。

2、编写开机自启动脚本

vi /etc/init.d/redis
看清楚目录,是在 etc/init.d下新建redis文件 ,为什么,因为 linux开机会 执行这个目录中的文件

#!/bin/sh
#chkconfig: 2345 80 90

Simple Redis init.d script conceived to work on Linux systems

as it does use of the /proc filesystem.

REDISPORT=6379 #端口号,这是默认的,如果你安装的时候不是默认端口号,则需要修改
REDISPATH=/usr/local/bin/ #redis-server启动脚本的所在目录,你如果忘了可以用find / -name redis-server 或whereis redis-server找到
EXEC= R E D I S P A T H / r e d i s − s e r v e r C L I E X E C = {REDISPATH}/redis-server CLIEXEC= REDISPATH/redisserverCLIEXEC={REDISPATH}/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid #在redis.conf中可找到该路径
CONF="/usr/local/deploySoft/redis-5.0.14/redis.conf" #redis.conf的位置, 如果不和redis-server在同一目录要修改成你的redis.conf所在目录
case “$1” in
start)
if [ -f P I D F I L E ] t h e n e c h o " PIDFILE ] then echo " PIDFILE]thenecho"PIDFILE exists, process is already running or crashed"
else
echo “Starting Redis server…”
$EXEC $CONF
fi
;;
stop)
if [ ! -f P I D F I L E ] t h e n e c h o " PIDFILE ] then echo " PIDFILE]thenecho"PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo “Stopping …”
$CLIEXEC -p R E D I S P O R T s h u t d o w n w h i l e [ − x / p r o c / REDISPORT shutdown while [ -x /proc/ REDISPORTshutdownwhile[x/proc/{PID} ]
do
echo “Waiting for Redis to shutdown …”
sleep 1
done
echo “Redis stopped”
fi
;;
*)
echo “Please use start or stop as first argument”
;;
esac
编写完成,保存

修改文件的权限为 可执行的 chmod 775 /etc/init.d/redis

测试一下redis 的启动

/etc/init.d/redis start

启动成功

把这个脚本设置成系统启动时自动执行,系统关闭时自动停止,使用如下命令:

chkconfig --add redis

apt-get install sysv-rc-conf

sysv-rc-conf redis on

十、Mysql 开机启动
已自动设置
十一、命令点
sysv-rc-conf tomcat on
netstat -tunlp | grep 端口

十二、sysv-rc-conf
Ubuntu下的sysv-rc-conf完美“替代”CentOS下的chkconfig

第一步:在终端键入sudo apt-get install sysv-rc-conf安装sysv-rc-conf服务。

第二步:检查设置系统开机自启动服务:sudo sysv-rc-conf

小提示:在sudo sysv-rc-conf时,最好终端是最大化窗口,否则将出现下边情况。

第三步:关闭光标所对应程序则键入“-”并确认,开启则键入“+”或“=”并确认。其中方括号中打X的即表示运行在对应runlevel时开机启动的服务。例如上图中的anacron服务在runlevel 2、3、4、5,均为开机自启动。

快捷键:
相关快捷键的使用说明如下。

linux运行级别:
runlevel target
0 关机
1 单用户
2 多用户模式,没有NFS网络支持
3 完整的多用户文本模式,有NFS,登录后进入控制台命令行模式
4 保留
5 含有图形界面模式
6 重启
man runlevel:

十三、问题处理

1、Linux FontConfig坑记: sun.awt.FontConfiguration.getVersion
apt-get install fontconfig
fc-cache --forc

2、ubuntu 18 当使用命令sudo apt-get install sysv-rc-conf安装不上时,提示“ E: 无法定位软件包问题

  1. 进入 cd /etc/apt
  2. 使用sudo vim sources.list命令 在里面sources.list 添加镜像源
    deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
    3.然后 sudo apt-get update
  3. sudo apt-get install sysv-rc-conf 接着安装就可以了
    5.configure: error: no acceptable cc found in $PATH
    原因:
    这是缺少GCC编译器造成的,安装即可。
    解决办法:

sudo apt-get install gcc

十四、定期清除日志

定时清理日志
想要写一个Shell脚本,定期清理掉久远的日志文件 ,避免磁盘不断被占用。
1、 /home/xunwei/java 下创建
创建Shell 脚本:
touch auto_del_log.sh
chmod +x auto_del_log.sh
sudo vim auto_del_log.sh

内容如下:
#!/bin/sh
find /home/java/tomcat/logs/ -mtime +2 -name “.out" -exec rm -rf {} ;
find /home/java/tomcat/taac_log/taac/ -mtime +2 -name "
.log” -exec rm -rf {} ;
find /home/java/tomcat/taac_log/system/ -mtime +2 -name “*.log” -exec rm -rf {} ;

find:linux的查找命令,用户查找指定条件的文件;
/usr/local/fz_middlekey/logs/:想要进行清理的任意目录;
-mtime:标准语句写法;
+60:查找60天前的文件,这里用数字代表天数;
“.out":希望查找的数据类型,".jpg"表示查找扩展名为jpg的所有文件,”*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} ; :固定写法,一对大括号+空格++;

2、监测crontab -e 是否存在

(1)安装定时器 crontabs(没有情况)
apt-get install crontabs
/sbin/service crond start //启动服务
(2)加入定时任务(已有)
crontab -e //编辑当前用户的crontab文件,可指定具体的用户
加入我们的定时任务(表示每天2点30分跑一次脚本):

30 2 * * * /home/java/auto_del_log.sh >/dev/null 2>&1

cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload

/usr/sbin/service crond start

以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可

查看当前用户的crontab,输入 crontab -l;

编辑crontab,输入 crontab -e;

删除crontab,输入 crontab -r
查看crontab运行状态 service crond status

十五、ubuntu mysql 初始密码修改

最近在ubuntu系统上安装了MySQL,但是安装时没有提示输入root用户密码,在网上找了一天解决方案,试图修改root用户下的登入密码,但是网上的帖子都不凑效,最后终于改成功了,因此记下来以供有同样需要的人参考。
1、安装
$ sudo apt-get install mysql-server

$ apt install mysql-client

$ apt install libmysqlclient-dev

以此在终端输入上述代码,等待安装。装好后,输入以下代码检查下是否安装成功。
$ sudo netstat -tap | grep mysql
$ netstat -tap | grep mysql

tcp6 0 0 [::]:mysql [::]😗 LISTEN 7510/mysqld

如果出现第三行提示,则表明安装成功。
2、登入MySQL
$ mysql -u root -p
1
输入密码,如果可以进入则下面的不用看了;如果提示不能登入,则我们尝试启用安全模式登入MySQL,这样可以绕过密码登入,登入后再修改密码。
3、安全模式登入MySQL
$ sudo /etc/init.d/mysql stop


[sudo] wl 的密码:
[ ok ] Stopping mysql (via systemctl): mysql.service.

$ sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &

输入第一行终止MySQL运行,成功,会提示下面两行;输入第四行,成功,没有任何报错则可以另外打开一个终端窗口进行下一步操作;但是一般会报错,比如提示mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists
因此我们尝试输入以下代码
$ sudo mkdir -p /var/run/mysqld

$ sudo chown mysql:mysql /var/run/mysqld

最后再次输入:
sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &

到了这里不在提示错误,可以打开另一个终端端口了,尝试无密码登入MySQL。
mysql -u root

到这里应该可以进入MySQL了,继续操作

use mysql;

update user set authentication_string=PASSWORD(“这里输入你要改的密码”) where User=‘root’; #更改密码
update user set plugin=“mysql_native_password”; #如果没这一行可能也会报一个错误,因此需要运行这一行

flush privileges; #更新所有操作权限
quit;

4、使用修改的密码登入MySQL
经过上面一系列的操作,应该可以正常使用你更改的密码登入了。

sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start # reset mysql

mysql -u root -p

第一行先终止数据库运行,第二行重启数据库服务,第三行root用户登入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值