查看容器信息---格式化

> 镜像,ID,端口号,状态

ps -a --format "table {{.Image}}\t{{.ID}}\t{{.Ports}}\t{{.Status}}"```
1
2
3
4

#### > 列出正在运行的容器

```docker ps -a -f "status=running"

> 列出已经退出的容器

ps -a -f "status
1
2
3
4

#### > status 所有的状态

```status (`created|restarting|running|removing|paused|exited|dead`)

Mac下启动ssh服务

mac本身安装了ssh服务,默认情况下不会开机自启

1、启动sshd服务:

1
$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

2、停止sshd服务:

1
$ sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist

3、查看是否启动:

1
$ sudo launchctl list | grep ssh

如果看到下面的输出表示成功启动了:

1
- 0  com.openssh.sshd

CentOS7下利用init.d启动脚本实现tomcat开机自启动

1. 环境准备

1.1 系统

操作系统:CentOS 7(64位)

1.2 工具/软件

已安装JDK,并配置好环境变量
已安装tamcat,可手动启动

2. 方法/步骤

2.1 JDK环境配置

CentOS7默认安装了OpenJDK,用于支持Tomcat启动是没有问题的。如果项目需要使用Sun的JDK特性的话,就需要重新配置Sun的JDK环境。这里可以参照本人之前的博文:《17101501_CentOS7下卸载openJDK安装Sun公司的JDK》。

2.2编写tomcat服务脚本文件

在/etc/init.d/目录下创建tomcat8服务脚本文件。
执行脚本:

1
2
[root@localhost /]# vim /etc/init.d/tomcat8
[root@localhost /]# cat /etc/init.d/tomcat8

将下面内容进行粘贴:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
#
# tomcat startup script for the Tomcat server
#
#
# chkconfig: 345 80 20
# description: start the tomcat deamon
#
# Source function library
. /etc/rc.d/init.d/functions

prog=tomcat8
JAVA_HOME=/usr/java/jdk1.8.0_151/ # 根据自己的路径改写JAVA_HOME
export JAVA_HOME
CATALANA_HOME=/usr/local/tomcat/ # 根据自己的路径改写CATALANA_HOME
export CATALINA_HOME

case "$1" in
start)
echo "Starting Tomcat..."
$CATALANA_HOME/bin/startup.sh
;;

stop)
echo "Stopping Tomcat..."
$CATALANA_HOME/bin/shutdown.sh
;;

restart)
echo "Stopping Tomcat..."
$CATALANA_HOME/bin/shutdown.sh
sleep 2
echo
echo "Starting Tomcat..."
$CATALANA_HOME/bin/startup.sh
;;

*)
echo "Usage: $prog {start|stop|restart}"
;;
esac
exit 0

保存退出

2.3 赋权限,测试启动脚本

执行脚本:

1
2
3
4
5
6
7
8
[root@localhost /]# cd /etc/init.d/
[root@localhost init.d]# chmod 755 tomcat8 #赋予权限
[root@localhost init.d]# service tomcat8 start #启动服务
Starting tomcat8 (via systemctl): [ 确定 ]
[root@localhost init.d]# service tomcat8 stop #停止服务
Stopping tomcat8 (via systemctl): [ 确定 ]
[root@localhost init.d]# service tomcat8 restart #重启服务
Restarting tomcat8 (via systemctl): [ 确定 ]

2.4 将服务脚本加入到系统启动队列

执行脚本:

1
2
3
4
5
6
7
[root@localhost zm]# chkconfig tomcat8 on  #服务脚本加入到系统启动队列
[root@localhost zm]# chkconfig --list tomcat8 #检查 oracle服务是否已经生效
注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
欲查看对特定 target 启用的服务请执行
'systemctl list-dependencies [target]'。
tomcat8 0:关 1:关 2:开 3:开 4:开 5:开 6:关

2.5 重启系统,测试配置结果

一般情况下,启动是没有问题的。

这里多说点儿,因为CentOS7的自启动服务开始由systemctl逐渐替代了早期版本中的chkconfig和service形式。
这里我尝试了一下用指令:systemctl start tomcat8启动服务,系统提示systemctl daemon-reload命令加载服务,执行后,发现可以通过systemctl命令进行简单的控制,如查询状态,启动服务,终止服务,重启服务等操作。但是关于开机启动的设置是不可以的,还需要通过老命令chkconfig实现。


服务器下配置springboot项目开机自启

Linux版本 Centos7详细步骤如下:

1.在/etc/init.d/目录下创建shell启动脚本autojar.sh

  1. cd /etc/init.d/

  2. touch autojar.sh

  3. vi autojar.sh

    内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh
# chkconfig: 2345 85 15
# description:auto_run

#程序名
RUN_NAME="SpringBoot.jar"

#jar包位置
JAVA_OPTS=/software/SpringBoot.jar
#后台运行日志位置
LOG_OPTS=/software/nohup.out

#开始方法
start() {
nohup java -jar $JAVA_OPTS >$LOG_OPTS 2>&1 &
echo "$RUN_NAME started success."
}

#结束方法
stop() {
echo "stopping $RUN_NAME ..."
kill -9 `ps -ef|grep $JAVA_OPTS|grep -v grep|grep -v stop|awk '{print $2}'`
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Userage: $0 {start|stop|restart}"
exit 1
esac

第一行,告诉系统使用的shell,所以的shell脚本都是这样。

第二行,2345代表在设置在那个level中是on的,如果一个都不想on,那就写一个横线”-“,85和15, 后面两个数字代表S和K的默认排序号 ,告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为S80autojar的文件连接, 第一个字符是S,系统在启动的时候,运行脚本autojar

注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig –add auto_run时,会报错。

85 数字越小 启动优先级别越高

15数字越小 关闭优先级别越高

2.设置执行权限

1
2
chmod +x /etc/init.d/autojar.sh
chmod +x /software/SpringBoot.jar

3.添加到chkconfig作为系统服务,并设置开机启动:

系统在启动的时候,就会运行autojar并加上start参数,等同于执行命令autojar start。

1
2
3
chkconfig --add autojar.sh   (添加为系统服务)
chkconfig autojar.sh on (开机自启动)
service autojar.sh start(启动服务)

4.重启

1
reboot

5.查看

1
2
netstat -ntlp | grep 8082 (查看端口)
ps aux|grep java(查看服务)

说明:

chkconfig提供一种简单的命令行工具来帮助管理员对/etc/rc[0-6].d目录层次下的众多的符号链接进行直接操作。 此命令使用是由chkconfig命令在IRIX操作系统提供授权。不用在/etc/rc[0-6].d目录下直接维护配置信息,而是直接在/etc/rc[0-6]下管理链接文件。在运行级别的目录下的配置信息通知在将会初始启动哪些服务。

Chkconfig有五个很明确的功能:为管理增加一个新的功能、删除一个功能、列出当前服务的启动信息、改变一个服务的启动信息和检测特殊服务的启动状态。

当chkconfig没有参数运行时,它将显示其使用方法。如果只给出了一个服务名,它将检测这个服务名是否已经被配置到了当前运行级别中。如果已经配置,返回真,否则返回假。—level选项可以被用做查询多个运行级别而不仅仅是一个。

如果在服务名之后指定了on,、off或reset,chkconfig将改变指定服务的启动信息。On或off标记服务被打开或停止,尤其是在运行级别被改变时。Reset标记重置服务的启动信息。

默认情况下,on或off选项仅对2、3、4、5有影响,而 reset影响所有的运行级。—level选项可以被用于指定哪个运行级别接收影响。

注意:对于每个服务,每一个运行级都有一个开始角本和一个结束角本。当开或关一个运行级时,init不会重新开始一个已经运行的服务,也不会重新停止一个未运行的服务。

选项:

—level levels 指定一个运行级别适合的操作。范围为0-7。

—add name 增加一个新的服务。

—del name 删除一个服务

—list name 显示服务的情况

RUNLEVEL FILES

每个通过chkconfig管理的服务在其init.d目录下的角本中都需要两行或多行的注释。

第一行告诉chkconfig在默认情况下什么运行级别的服务可以开始,也就是所说的开始或结束的优先级别。如果服务没有默认的级别,建造将在所有运行级别中启动。a – 将用于代替运行级列表。第二个注释行包括对此服务的描述,可以通过反斜线符号扩展为多行。

示例,

auto_run的前三行如下:

#!/bin/sh

#chkconfig: 2345 80 90

#description:auto_run

第一行,告诉系统使用的shell,所以的shell脚本都是这样。

第二行,chkconfig后面有三个参数2345,80和90告诉chkconfig程序,需要在rc2.d~rc5.d目录下,创建名字为 S80auto_run的文件连接,连接到/etc/rc.d/init.d目录下的的auto_run脚本。第一个字符是S,系统在启动的时候,运行脚本auto_run,就会添加一个start参数,告诉脚本,现在是启动模式。同时在rc0.d和rc6.d目录下,创建名字为K90auto_run的文件连接,第一个字符为K,系统在关闭系统的时候,会运行auto_run,添加一个stop,告诉脚本,现在是关闭模式。 注意上面的三行中,第二,第三行是必须的,否则在运行chkconfig —add auto_run时,会报错。

常见的错误 “服务不支持 chkconfig”: 请注意检查脚本的前面,是否有完整的两行:

#chkconfig: 2345 80 90

#description:auto_run

在脚本前面这两行是不能少的,否则不能chkconfig命令会报错误。 如果运行chkconfig老是报错,如果脚本没有问题,我建议,直接在rc0.d~rc6.d下面创建到脚本的文件连接来解决,原理都是一样的。


ssh重启报错或者无法重启

ssh重启报错或者无法重启-Failed to restart ssh.service: Unit not found

1.在修改了sshd_config文件之后需要重启sshd,准备执行一下命令进行重启:

1
/etc/init.d/ssh restart

2.发现这个路劲底下根本没有ssh,尝试以下命令:

1
2
3
# sudo service ssh restart
Redirecting to /bin/systemctl restart ssh.service
Failed to restart ssh.service: Unit not found.

出现以下错误

1
Failed to restart ssh.service: Unit not found.

3.原因:以上命令都是centos6里面的命令,在centos7需要用:

1
systemctl restart sshd

brew切换国内的源

切换到国内的源

替换brew.git:

cd “$(brew —repo)”

中国科大:

git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

清华大学:

git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

替换homebrew-core.git:

cd “$(brew —repo)/Library/Taps/homebrew/homebrew-core”

中国科大:

git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

清华大学:

git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

替换homebrew-bottles:

中国科大:

echo ‘export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles‘ >> ~/.bash_profile
source ~/.bash_profile

清华大学:

echo ‘export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles‘ >> ~/.bash_profile
source ~/.bash_profile

应用生效:

brew update

切换到官方源

重置brew.git:

cd “$(brew —repo)”
git remote set-url origin https://github.com/Homebrew/brew.git

重置homebrew-core.git:

cd “$(brew —repo)/Library/Taps/homebrew/homebrew-core”
git remote set-url origin https://github.com/Homebrew/homebrew-core.git


CentOS开机自动启动Redis

修改redis.conf,打开后台运行选项:

1
2
3
# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes

编写脚本,vim /etc/init.d/redis:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
##!/bin/bash

# chkconfig: 2345 10 90
# description: Start and Stop redis

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379 #实际环境而定
REDISPSWD=redis #实际环境而定
EXEC=/usr/local/redis/src/redis-server #实际环境而定
REDIS_CLI=/usr/local/redis/src/redis-cli #实际环境而定

PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/redis.conf" #实际环境而定

case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed."
else
echo "Starting Redis server..."
$EXEC $CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -a $REDISPSWD -p $REDISPORT SHUTDOWN 2>/dev/null
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac

设置执行权限

1
chmod +x /etc/init.d/redis

开机自动启动设置:

1
2
3
# 尝试启动或停止redis
service redis start
service redis stop
1
2
# 开启服务自启动
chkconfig redis on

linux查看redis安装目录_查看redis端口占用

如果命令 which 和whereis 都找不到安装目录,可使用以下办法

ps -ef|grep redis

得到了进程号 xxxx

然后 ls -l /proc/xxxx/cwd

image-20200914113316172

查看端口占用

netstat -tunpl|grep 6379

如果:-bash: netstat: command not found

yum install net-tools


docker安装redis
docker部署mysql:无法登陆

docker 部署了mysql :无法登陆问题

  1. sudo docker run -p 3306:3306 —name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
  2. .sudo docker exec -it mysql bash
  3. mysql -uroot -p123456
  4. 登陆成功图