linux - CRT -- SSH链接 - sftp - cron定时任务、

好记星不如烂笔头,这里记录平时工作中用到的东西,不喜可以留言。

1:一台新Linx服务器,需要检查的几个东西

  1. 登录上去是否显示服务器的别名,方便区分服务器,搜索:root@后面的别名
  2. 查看是否支持中文,比如:ls --help 看是否是中文; 搜索:中文; 
  3. 代码里面写的 字体,比如生成图片 或者 pdf、excel等使用的字体,是否存在?
  4. 查看时间是否正确,搜索: date -s、date -R 查看时区
  5. 自动重启,看相关服务是否自动启动
  6. 各种定时报警需要设置,eg 磁盘空间报警(防止磁盘被日志撑满)、内存报警、cpu报警

2-1:如何登陆linux服务器

secureCRT:SecureCRT是一款支持SSH的终端仿真程序,简单的说是Windows下登录UNIX或Linux服务器主机的软件。不同就是SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT是一款用于连接运行包括Windows、UNIX和VMS的理想工具。 收费;

SecureCRT for Mac 7.3.1

解决mac电脑无法保存密码的问题

linux - CRT -- SSH链接 - sftp - cron定时任务、_第1张图片

linux - CRT -- SSH链接 - sftp - cron定时任务、_第2张图片linux - CRT -- SSH链接 - sftp - cron定时任务、_第3张图片

secureCRT相关设置(linux颜色设置、放置linux会话断开设置)Putty、XShell、SecureCRT、SSH Secure Shell Slient哪个好用?

linux - CRT -- SSH链接 - sftp - cron定时任务、_第4张图片

Xshell :Xshell终端模拟器;免费;

putty:kevin介绍的windows ssh工具

Mac 电脑SSH连接linux:


mac 电脑远程连接 Linux

连接主机: ssh [email protected] 密码: 3b8e45b74457e318

ssh -X [email protected]

2-2:Linux使用私钥登录

服务器只要开通了公网,黑客进行会通过公网ip进行检查试探登录。

linux通常使用SSH登录,但是这种账号、密码形式容易被黑客进行轮训破解。我们使用更安全的私钥形式登录,并禁用密码登录。一下方式已经验证可用

2-2-1: 采用方式第一种,就是禁止使用密码,使用私钥

QCURE项目服务器测试成功,但是需要自己保存好私钥,不然就无法登陆了。

linux ssh使用秘钥登录并禁用密码登录,可以禁止用户登录

 Windows 端通过SecureCRT以密钥方式登录linux服务器

Linux系统禁止root远程登录(不要执行, 禁止root远程登录, 使用密钥登录也使用不了,密钥是基于用户的公钥、私钥)

linux - CRT -- SSH链接 - sftp - cron定时任务、_第5张图片

2-2-1: 增加密码错误次数限制

使用私钥稍微有点麻烦,我们增加重试密码错误次数,eg: 密码错误超过5次,我们就锁定账号5分钟;

Linux如何禁用root账户(There were XXXX failed login attempts since the last successful login.)

3:修改linux root@后面的别名、主机名

## 修改linux root@后面的别名; 当服务器很多的时候,这个非常有用
cat /etc/hosts  # 查看hostname1
cat /etc/sysconfig/network ##查看hostname2【网络中】
cat /etc/hostname


### 确保:三个都是一样的
vi /etc/hostname 
vi /etc/sysconfig/network
vi /etc/hostname

#比如:[root@qcure-db ~]# 
#比如:[root@qcure-web ~]# 

#################### 如何让立刻生效 #########
sysctl kernel.hostname=$(cat /etc/hostname)
#或者
cat /etc/hostname > /proc/sys/kernel/hostname


#################### cat /etc/hosts #########
127.0.0.1    app1_4  localhost.localdomain localhost4 localhost4.localdomain4
::1          app1_4  localhost localhost.localdomain localhost6 localhost6.localdomain6
10.16.10.4   app1_4

centos修改主机名的正确方法

4:查看linux系统信息、发行版、内核

使用cat命令查看  # cat /proc/version (Linux查看当前操作系统版本信息)

cat /proc/version 

# (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb)
sb_release -a 


查看当前的linux怎样查看当前系统版本是UBuntu还是Cent OS?
很简单,命令是:
lsb_release -a
#
cat /etc/redhat-release

5: linux服务器的一些约定

远程终端登录信息
IP:47.100.34.60
PORT:22
USER:root
PWD:XXh6FjUurx
=======================================================
Redis信息
PORT:6379
PASSWORD:nozuonodie
=======================================================
fastDFS信息 
PORT:23000/22122
文件访问地址:
http://47.100.34.60:8000/文件路径
文件处处路径:/data/fdfs_storage/
nginx路径:/data/nginx/
=======================================================
tomcat相关信息
/usr/local/tomcat8l
/usr/local/jdk8

linux - CRT -- SSH链接 - sftp - cron定时任务、_第6张图片

Linux文件编辑命令详细整理

vi xxx.xml
q!  qw

6:Linux下如何查看tomcat是否启动/系统日志等   x

7:winscp、sftp上传文件

或者直接用scp命令搞定

windows 是否 FZ, fileZila工具,跨平台,支持 macos、windows 

fileZila server 中文版

如何在 Linux 中使用 sFTP 上传或下载文件与文件夹 【经典】

linux下使用sftp

aliyun ftp相关视频(注意共享的文件夹 要给 everyone 任何权限)

linux sftp登陆:  sftp [email protected] 
上传文件: put /work/android-project/eduQudao/java/qudaoedu/target/qudaoedu.war   /usr/local/tomcat8/webapps/qudaoedu.war
上传文件实例2:sftp> put /Users/duandazhi/Downloads/portal.war  /usr/local/tomcat8/portal.war
sftp命令里面也支持基本的文件操作命令,如 cd ls mkdir;本地系统,也可以使用这些命令,命令前面加入L 

情景:利用sftp中将本地文件夹/Users/duandazhi/Downloads/dazerPath (内包含子文件夹) ,复制到服务器的/usr/local/tomcat8/webapps目录下

put: put: No such file or directory

命令: put

步骤:


1.首先定位到远程 /usr/local/tomcat8/webapps 目录下:cd /usr/local/tomcat8/webapps/ourslook
2.在webapps目录新建文件夹:mkdir ourslook
rm -rf *         强制静默删除ourslook下面的所有文件和目录,谨慎操作
3.进入远程ourslook文件夹:cd ourslook
4.本地定位到Downloads文件夹下:lcd /Users/duandazhi/Downloads

(可以用命令lls查看下,Data应该是在本地这个目录下的)

5.执行关键命令:put -r dazerPath/.    把本地的dazerPath这个目录上传到服务器的,前提是已经进入了服务器的ourslook目录,这个在服务器不用创建dazerPath目录,会自动创建ourslook目录
【【或者使用下面一个命令就可以搞定】】:put -r /Users/duandazhi/Downloads/ourslook/.   /usr/local/tomcat8/webapps/ourslook
put /Users/duandazhi/Downloads/portal.war   /usr/local/tomcat8/webapps/portal.war
 6.刷刷刷............................本地dazerPath文件夹的东西(包括各种子文件夹)就全部复制到远程ourslook
 6: linux 服务器 基本配置;其实最简单的方式,使用secureCRT SFTP 上传直接拖拽。

远程终端登录信息
IP:xxx.xx.xx.xx
PORT:22
USER:root
PWD:h6FjUurx
=======================================================
Redis信息
PORT:6379
PASSWORD:nozuonodie
=======================================================
fastDFS信息 
PORT:23000/22122
文件访问地址:
http://xx.xxx.xx.xx:8000/文件路径
文件处处路径:/data/fdfs_storage/
nginx路径:/data/nginx/
=======================================================
tomcat相关信息
/usr/local/tomcat8l
/usr/local/jdk8
=======================================================

7.2 tomcat启动和杀死命令

linux 服务器tomcat的重启   Linux下Tomcat重新启动  x linux下tomcat服务的相关命令  x

1,启动tomcat服务
方式一:直接启动 ./startup.sh  --不建议使用
方式二:作为服务启动 nohup ./startup.sh &   --后台启动tomcat; 这里nohup是一个日志输出的文件;可以使用 tail -f 查看;
方式三:控制台动态输出方式启动 ./catalina.sh run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务
2, 查看tomcat是否启动

杀死查看进程

1:查看tomcat是否运行  ps -ef|grep java
1-1:查看tomcat是否运行 ps -ef |grep tomcat   #如果有打印tomcat相关就表示运行
1-2:查看端口是否被占 netstat -apn  | grep 8888
1-3:上面几种方式都能看到进程编号,kill -9  1711

linux - CRT -- SSH链接 - sftp - cron定时任务、_第7张图片

7.3 linux 基础命令 mv、cp、rm、ln

linux 公社

      Linux 移动或重命名文件/目录-mv 的10个实用例子

      Linux cp 命令的15个示例 - 创建文件和目录的副本 

      Linux中的15个基本‘ls’命令示例 
      将Linux文件清空的几种方法

rm -rf ourslook/   静默递归删除ourslook目录
mv  jdk-8u161-linux-x64.rpm   jdk8x64.rpm   重命名单个文件
mv  download/ downloads/  重命名目录 
\cp -rf directory_1 /home/pungki/office 说明:copy一个目录/文件,并且静默cp,最前面必须加斜杠\,否则cp: overwrite 必须要确认
 cp -rf /home/nginx/application/dist/ /usr/local/tomcat9/webapps/ROOT #复制并且复制子目录;把 dist目录页copy了
\cp -rf /home/nginx/application/dist/* /usr/local/tomcat9/webapps/ROOT ### 不复制dist目录


----------- ln 软连接 start ------------------
# 比如, elasticsearch-6.8.3文件很长,我们可以用一个文件连接,简写 es
1:linux查看软连接实际指向的文件的位置
# ls -al
2:linux创建文件软连接
ln -s 源文件 目标文件
3:linux 删除文件软连接 
 rm –rf   ./软链接名称

Linux软链接创建及删除  https://www.cnblogs.com/jing99/p/10797230.html
为初学者准备的 ln 命令教程(5 个示例) https://linux.cn/article-9501-1.html

----------- ln 软连接 end ------------------
----------- 清空文件start ------------------
1种: echo -n "" filename # 一定要加参数-n,否则默认多一个-n到文件里面
2种:cat /dev/null > filename #清空文件
----------- 清空文件end ------------------

linux - CRT -- SSH链接 - sftp - cron定时任务、_第8张图片

8:查看inux下查看CPU型号,内存大小,硬盘空间的命令,服务器配置

赤骏司机服务器配置:1个4核CPU,型号 Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz, 8G内存,硬盘128G

股期宝服务器配置  :1个2核CPU,型号Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz, 16G内存,硬盘100G

大概配个7000-8000的 每年就差不多了; 使用 linux centos7 操作系统
CPU:4核心
RAM:8G-16G
HDD SYS:40G
HDD DATA:50~100G
NETWORK:8M左右


#!/usr/bin/env bash

#1: 查看当前目录下各个文件及目录占用空间(磁盘)(硬盘)大小
# 一般报错 “No space left on device” 都是日志文件过大,如:tomcat、nginx日志
 du -sh /usr/*
 ## 那个磁盘的分区总容量是多少挂载到那个文件夹下面
 # `/dev/vda1 `: 第a快磁盘的第一个分区;xueyouhui:50G; cjdriver: 148g;
 # `tmpfs`:是建立在内存的虚拟文件系统,默认情况下最大占用内存一半大小的空间 xueyouhui:7.8G; cjdriver: 3.9G;
 # `devtmpfs`:用来缩短开机时间,一般是内存的一半;xueyouhui:7.8G - 16G内存; cjdriver: 3.9G - 8G内存;
 df -h  ###查看整个电脑的文件系统,以及对应的挂载点;挂载点:linux没有盘符的概念,通过制定的分区`挂载`到指定的文件夹上面
 blkid ###查看电脑有几磁盘和个分区;示例:/dev/vda1: 表示第一个磁盘的第一个分区;/dev/vdb2:表示第2快磁盘的第二个分区

 cat /proc/meminfo | grep MemTotal ###查看内存大小

#查找当前目录所有的大于100MB的文件的名称:
find ./ -size +100M | xargs du -sh ##当前目录
find /usr/ -type f -size +100M -print #/usr/目录
sudo find / -name *tomcat* #find寻找tomcat安装位置
du -sh /data/neusoft/* ### 查看指定目录的大小占用情况


#2:按照时间升序排列:
ls -lrt
#按照时间倒序排列:
ls -lt
#------------------
#按照大小降序:
ls -Sl
#倒序从小到大:
ls -Slr
#如果要方便阅读大小:
ls -Slr -h

#3:诡异测磁盘空间,不足,磁盘空间不足,可能导致 tomcat启动失败、mysql无法启动。
查看:诡异的Linux磁盘空间100%  https://www.jianshu.com/p/84ddf500ed9e
lsof -n | grep deleted  命令查看所有的句柄占用情况
kill -9 命令删掉占用句柄的进程就可以了!最后看一下磁盘,简直是完美。



#4:平时磁盘比较占用空间的几个地方;
4-1:应用本身上传的附件 
4-2:nginx的访问日志 logs/access.log可以达到7-8G,运行了一年不到的项目,可怕;   tomcat的日志,如果生产也是debug的 也能产生 上G的日志。
4-3:tomcat的日志,logs/catalina.out 图书商城高达 12G。
4-4:如果删除了日志文件,系统空间没有增加,那就需要重启对应的应用了。

参见:

10: nohup 命令说明

nohup ./startup.sh &

101:查看linux是32还是64位:

getconf LONG_BIT

12: 编辑文本,一种是试用fstp的上传下载命令,在本地编辑;一种试用vi命令;

vi辅助试用ESC 和 : 进行命令输入 和 insert、i 切换到插入模式
退出不保存::q!
显示行号: :set number
跳转到指定行:ngg 或者 nG, eg:23gg 或者 23G 就跳转到23行
高亮单词:Shift + *
退出保存: :wq 
保存到另外文件:  :w 新文件名称

13:  linux 防火墙设置--

      centos7之前使用的是iptables,之后保留iptables但新增换成了firewall

## 偷懒,直接关闭 centos linux的 防火墙和selinux
#1: 永久关闭iptables 防火墙(centos7 之前的主流使用)
chkconfig iptables on

#2: 永久关闭 firewalld 防火墙,并禁止开机启动
service firewalld stop & systemctl disable firewalld

# 3: 永久关闭 selinux (美国国防部研发的一个linux安全模块),嫌麻烦就直接关闭了
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
设置后需要重启才能生效

      centos中iptables和firewall防火墙开启、关闭、查看状态、基本设置等

       CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙

       注意关闭firewall和iptables防火墙设置,如果关闭之后并重启还不生效,就添加放行设置;内网可以访问,外网还是访问不了,就要查看相关的服务器提供商是否放行对应的端口号,详情见:检查 TCP 80 端口是否正常工作 x

linux - CRT -- SSH链接 - sftp - cron定时任务、_第9张图片

centos7 查看防火墙状态:firewall-cmd --list-all   
赤骏司机项目开通的端口号:ports: 80/tcp 80/udp 3306/tcp 3306/udp 6379/tcp 6379/udp 23000/tcp 23000/udp 22122/tcp 22122/udp 8000/tcp 8000/udp  


service firewalld restart 重启
service firewalld start 开启
service firewalld stop 关闭
firewall-cmd --list-all   查看防火墙规则
firewall-cmd —state	 查看防火墙状态


firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=80/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=80/udp --permanent
firewall-cmd --zone=public --permanent --add-port=3306/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=3306/udp --permanent
firewall-cmd --zone=public --permanent --add-port=6379/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=6379/udp --permanent
firewall-cmd --zone=public --permanent --add-port=23000/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=22122/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=22122/udp --permanent
firewall-cmd --zone=public --permanent --add-port=8080/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=8080/udp --permanent
firewall-cmd --zone=public --permanent --add-port=443/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=443/udp --permanent
firewall-cmd --zone=public --permanent --add-port=8888/tcp --permanent
firewall-cmd --zone=public --permanent --add-port=8888/udp --permanent

添加之后重启防火墙生效:重启防火墙命令:firewall-cmd --reload  或者   service firewalld restart

centos7 firewall指定IP与端口访问(常用)

14: linux centos 设置 和 查看服务器时间

## date -s 是临时神效,重启之后恢复
修改时间,如:date -s "2018-02-26  15:54:00"。也可以是 :date -s "15:54:00" 

查看当前时间:date

网络时间同步:ntpdate -u cn.ntp.org.cn 
上面服务器无法访问,可以使用:ntpdate -u ntp.aliyun.com
一般需要开机启动的地方进行配置、或者crontab定时器的方式运行。
# 要对:ntp 先进行ping ,选择合适的, 详细看,下面的链接
# http://mirrors.aliyun.com/ 查看aliyun ntp  有详细配置


问题1: the NTP socket is in use, exiting
##先停止ntpd, 重新运行就好: 
service ntpd stop  

问题2:同步时间报错:Exiting, name server cannot be used: Temporary failure in ......
## 重新配置一下 DNS ,看是否可以访问外网,配置完毕,可以访问,就没问题了
## 编辑:vi  /etc/sysconfig/network-scripts/ifcfg-eth0 

##==============================================
如果还报错,就设置一个时间,写入硬件
hwclock -w #不能设置定时同步,那就 写入硬件

Linux同步网络时间  Linux同步网络时间_fei的专栏-CSDN博客_linux同步网络时间

Centos系统修改时间临时和永久生效

国内常用的NTP时间源同步服务器汇总

x

15:环境变量设置

vi /etc/profile  #export 添加命令,命令参考java环境变量
# source /etc/profile  #立即生效
#env 查看 或者  echo $PATH  

16: centos7 支持中文

   centos7 中文乱码解决方法  x 里面有两个目录 vi /etc/sysconfig/i18n 和  vi /etc/locale.conf 如果没有就创建文件

    第一招:查看是否已经支持中文如:"echo 中文"

   第二招:"mkdir 中文目录名称", 如果可以正常敲出和显示就好着。 赤骏和期权宝就好着,要"reboot"重启一下;

   第三招:date  如果显示中文日期,就是OK了

   第三招:useradd --help 查看添加用户的说明是否是中文,如果是就好的。

17: 重启centos7

Linux 重启命令 X,一个命令reboot搞定,  平时千万不能关机shutdown,很麻烦要运维开机。

18:查看tomcat日志,这里使用的是tomcat8.5、war包使用的是springboot项目

切换到:cd /usr/local/tomcat85/bin/logs
常规或者:cd /usr/local/tomcat85/logs
动态显示日志:tail -f catelina.out  这里会一直动态刷新

19:阿里云域名解析查看.

  • A: 主机记录,平时用的最多
  • TXT: 文本记录,通常用来验证域名的拥有这
  • CNAME: 指向和别名意思,本来访问A域名,现在可以通过B域名进行访问。用的最多OSS、邮箱, 如:image.jl-media.cn,指向具体的阿里云oss;通常把别人的域名,用我们自己的域名进行对外访问。
  • 显性URL301: 比如我们可以实现把 @ 转到 www,进行访问。eg: clmicrosystems.com 让自动转向 www.clmicrosystems.com
linux - CRT -- SSH链接 - sftp - cron定时任务、_第10张图片 赤骏司机解析2

linux - CRT -- SSH链接 - sftp - cron定时任务、_第11张图片 aliyun域名解析

           

linux - CRT -- SSH链接 - sftp - cron定时任务、_第12张图片 使自定义主机解析记录,如:small

www  @ 的该域名解析的含义: 说明,简单项目配置的时候,乱起八糟的都可以删掉,只留 @ 和 www

linux - CRT -- SSH链接 - sftp - cron定时任务、_第13张图片

20: linux 服务器磁盘管理,磁盘分系统盘、数据盘

数据盘,新购买(aliyun),也要自己分区(分成几块使用)、格式化(格式化为那种文件系统)、挂载(分区挂载到那一个目录上面,这个目录就能访问这个分区)

&&系统盘vda
&&数据盘vdb
&&分区
&&格式化
&&挂载
&&卸载
1: 查看所有的磁盘、磁盘的分区情况,请仔细查看,  fdisk -l 
说明:系统盘/dev/vda
说明:数据盘/dev/vdb
扩展分区和文件系统_Linux数据盘【对磁盘进行分区】: https://help.aliyun.com/document_detail/25452.html
***下面以扩充公司项目《图书商城》的上传文件目录为例进行操作
1-1:分区(把一数据磁盘进行分区)【格式化数据盘-Linux格式化数据盘】 https://help.aliyun.com/document_detail/25426.html  分区核心命令: fdisk
1-2:格式化(创建一个文件系统,如windows FAT NTFS、linux ext4),核心命令:mkfs.ext4
1-3:使用 monut 命令 数据盘的一个分区【挂载】到一个新目录下面 mallUploadRootBBBBBBBBBBB
1-4:copy/mv mallUploadRoot 到 mallUploadRootBBBBBBBBBBB
1-5:卸载 mallUploadRootBBBBBBBBBBB 新建 mallUploadRoot,重新挂载
2: df -h 只能看已经挂载了的磁盘磁盘,新购买,没挂载的看不到的。

============================
简单操作
说明:/dev/vdb1: 代表第二块磁盘的第一个分区
mount: 可以查看所有磁盘挂载情况
mount /dev/vdb1  /dazer  : 把vdb1挂载到dazer这个目录; 说明,一个磁盘可以挂载到多个目录。
umount /dazer 或者 umount /dev/vdb1 :可以卸载挂载点或者磁盘都可以。 卸载挂载之后,磁盘的文件都还在。 
============== 参加 ecs 卸载数据盘 https://help.aliyun.com/document_detail/25447.html
参  https://www.cnblogs.com/zy07zj18/p/7861570.html
卸载挂载之后,磁盘的文件都还在
如果您在/etc/fstab文件中设置了启动实例时自动挂载数据盘分区,请在/etc/fstab文件中删除分区的挂载信息,否则实例重启后您将无法连接实例。

=================================
扩展分区和文件系统_Linux系统盘【对linux系统盘进行扩容】https://help.aliyun.com/document_detail/111738.html
下面以扩充《图书商城》/dev/vda1 为例子; 亲测扩容,按照说明没有问题

Linux如何将未分配的硬盘挂载出来(碧桂园潼湖的主机)

21: mac or linux or windows 使用 telnet 命令检查指定服务器的端口是否开通

linux telnet 

linux下面安装telnet: yum install telnet
mac下面安装telnet: brew install telnet      <前置条件安装了mac brew包管理器>
--------------------
telnet 192.168.25.133 22 : 查看指定服务器的22端口
telnet taobao.com  22 查看指定域名的22端口

22: linux centos 系统创建用户一个 账号,让只能访问指定的目录进行操作。

# 建立用户,指定访问目录在网站根目录下的某一文件夹,但是不能对其他的网站目录进行操作(只读)
# 现在,ftp使用xxx的用户名登录,会自动锁定设置的目录
# 其中的目录,可以自己指定
# zhangsan是账号、zhangsanpwd 是密码,自己随便替换
# 说明 windows 也可以使用 openSSL, 类似 linux 形式连接 远程windows
# 查看所有用户:cat /etc/passwd   或者 tail -l /etc/passwd
# 查看所有的用户组: cat /etc/group; tail -f /etc/group;   
$ Linux添加、创建新用户 https://www.cnblogs.com/zhyantao/p/10582839.html
# 添加新用户并且指定用户组: useradd -G root dazer # 添加新用户dazer并指定用户组root

useradd -d /usr/local/nginx/html/www.xxx.com -m zhangsan
passwd zhangsan  # 修改用户zhangsan的密码,如果aA1111111
# chown命令修改文件的拥有者:拥有组;
# 拥有着:用户组,多个人拥有一个组; frontUserGroup 是用户组。
# 不给权限话,导致上传会有问题的; 拥有组,必须给,-R 要测试【上传】和【删除】是否都有用。
chown -R zhangsan:frontUserGroup /usr/local/nginx/html/www.xxx.com
这里使用root用户组把
chmod -R 777 /usr/local/nginx/html/www.xxx.com

23:linux 计划任务

我们经常需要处理定时任务,比如,也可以直接学习 “杨哥Linux云计算系列①: CentOS7入门到精通 (完整版)”

1)tomcat垃圾文件每天删除

2)nginx日志文件每周进行切割

3)mysql数据库每天进行备份

这里全部参考 centos中crontab(计时器)用法详解 

linux下的crontab安装及简单使用

关于一些脚本文件可以参见:脚本 linux bash 使用 shell PowerShell、alibaba clound toolkit、 OpenSSH   x


### crontab没有精确到秒的
## 这里全部参考 centos中crontab(计时器)用法详解  https://www.cnblogs.com/ccdc/archive/2012/06/01/2529471.html

1: centos7 安装 定时任务cron,默认 centos7 已经默认按照了 cron
service crond status   #查看系统cron启动状态
service crond restart  #重新启动cron
tail -f var/log/cron 查看执行日志

2: 查看所有的配置了的任务
crontab -l  #查看现在配置的所有任务
eg: 
no crontab for root
0 9 * * *   /usr/sbin/ntpdate   cn.ntp.org.cn > /dev/null  ###每天九点整同步国家标准时间,输出到/dev/null文件中

*/1 * * * *   /usr/sbin/ntpdate  ntp.aliyun.com >> /var/log/cron_ntpdate.txt  比如,这里修改为/var/log/cron_ntpdate.txt; 每分钟同步一次时间并输出到指定文件;日志文件不存在会自动生成的

*/1 * * * *  /usr/local/teleport/start.sh   >> /var/log/cron_teleport.txt  #文件不存在会自动创建;这里自动重启teleport, teleport有bug 总是自动停止了; start.sh如果服务启动这,就不会再次启动;  这里是每5分钟

0 2 * * *  /usr/local/sh/nginx_split.sh   > /var/null  ##每天2点执行一次nginx日志分割

0 3 * * *  /usr/local/sh/mysql_backup.sh   > /var/null  ##每天3点执行一次数据库备份,最好执行一次压缩。数据库文件还是挺大的。

0 */11 * * *  /usr/local/sh/website_monitor.sh   > /var/null  ##每小执行一次,监控网站是否正常,最大到59

0 4 * * *  /usr/local/sh/auto-del-x-days-ago-log.sh   > /var/null  ##每天4点执行一次,清理日志的脚本;包含tomcat历史日志、nginx历史日志、数据库备份历史文件的清理、其他包含子文件夹的目录文件、rsyncd同步文件日志(/var/log/rsyncd.log)

10 0 * * * echo "GGGHJJJJ" >> /tmp/test.txt  ##这里是测试,每天0点10分,写测试文件到test.txt中

0 2 * * * /usr/local/clear/clearCache.sh  ###清理linux vm内存缓存; echo 3 > /proc/sys/vm/drop_caches  ##每天2点清理一次

10 16 * * * /nuc/logs/bake_access_log/nginx-log-extract.sh copy_hsjc_all >> /var/log/log.copy_hsjc_all ##每天16点10分,copy一次hsjc的日志到目标服务器.

0 16 * * * /ymt/logs/bake_access_log/nginx-log-extract.sh copy_ymt_all >> /var/log/log.copy_ymt_all  ##每天16点0分,copy一次ymt的日志到目标服务器.

3: 编辑 cron 文件
crontab -e


4: 查看执行日志 
tail -f /var/log/cron  
tail -f /var/log/cron_ntpdate.txt
tail -f /var/log/cron_teleport.txt  
日志文件: /var/log/cron*

5: 常见定时任务举例
#每晚的21:30 重启apache
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

#每2分钟同步一下时间
*/2 * * * *   /usr/sbin/ntpdate   -u  ntp.sjtu.edu.cn

#这里cron 表达式和标准的,就少了一个秒,这里5位,标准6位 http://www.bejson.com/othertools/cron/
*      *   *   *   *  command
分    时  日  月  周   命令/脚本

24:常用linux命令

netstat -ntulp |grep 80  检查80开头端口是否被占用,会列出所有的80开头的
netstat -tulnp  查看所有的端口,以及和端口绑定的本地ip,如果:不是0.0.0.0就是只能指定ip可以访问; QCURE.com就使用该命令
netstat -a  查看所有的监听;Local Address  本地端口; Foreign Address: 外包可以访问端口
kill -9 进程id,查询并杀死对应的进程。kill -9 11823

ss   -tnl: 查看服务器上面那些端口被监听。
1:查看tomcat是否运行  ps -ef|grep java
1-1:查看tomcat是否运行 ps -ef |grep tomcat   #如果有打印tomcat相关就表示运行
1-2:查看端口是否被占 netstat -apn  | grep 8888
1-3:上面几种方式都能看到进程编号,kill -9  1711
查看服务器对外端口是否开放(从本地访问服务器看端口是否开放)【这里是入方向,默认都是入方向】
eg1: 
telnet 101.132.189.38 3306               --提示,Connected to 101.132.189.38. Escape character is '^]' ,说明是服务器正常,并且对应端口是通的。
--------------------------------------------------------------------------------------

查看服务器内访问外部端口是开通(从服务器内部访问外部端口是否开放)【这里是出方向,默认出方向都是放行的】【服务器内部要访问外部服务的端口,如 服务器内要发送邮件】
eg2: 
telnet smtp.163.com 465
telnet smtp.163.com 25
阿里云,这里25默认是关闭的,开通比较麻烦,使用加密端口把。


linux - CRT -- SSH链接 - sftp - cron定时任务、_第14张图片

#查看服务器内存空闲量
free -g #查看总内存多少,剩余多少,单位G; 可以是free -m

25:服务器端口

  服务器出入方向说明,出入这里都是要站在服务器内部来说的。

1: 入方向: 服务器内部的服务对外提供服务,这是入方向;入方向都是默认禁止的; 平时用的入方向最多。

2: 出方向:服务器内要访问服务器外的资源,这个是出方向,这个默认都是开通的;除了铭感的25号端口邮箱,默认被厂商了。

常用端口总结: https://www.cnblogs.com/gh747/p/10785909.html 
开通的端口:
80:nginx 
开通 8888/8080/8000:tomcat使用服务器 
3306:mysql服务器 
6379:redis缓存服务器端口 
443: nginx 使用 、https;
22122: fastDFS Tracker、
23000:fastDFS Storage、
8000: 其他用
21:ftp服务器要用. 21/65500 ,只开通21就行
20:ftp辅助端口,也必须开通; 使用windows自带的ftp, 使用 主动模块
22:远程端口号必须开通;(windows/linux都需要开通,windows使用powershell、openssh)
7190: telport堡垒机
27017、27018: MongoDB, MongoDB经常被黑客攻击,我们使用:47071
9200、9300、5601:es访问端口、内部集群通讯端口、图像化界面端口
873:两台服务器(rsync)互相备份端口
500、4500: rancher机器之间host之间需要的通讯端口,UDP端口。

26: centos 7 添加 aliyun yum 源、epel源

有时候使用的是企业自建的私有云,配置的yum源不合适,我们可以进行替换为aliyun yum源头:

centos 7 添加 aliyun yum 源、epel源 https://www.jianshu.com/p/47d1185305aa

27: “Connection refused” vs “No route to host”

今天搭建docker registry的时候,开通5000端口,发现

telnet localhost 5000  OK

telnet 127.0.0.1 5000  错误,提示:No route to host,很奇怪,把 服务器防火墙也关闭了,还是。后面重启服务器终于好了。这个是防火墙问题,关闭防火墙、重启服务器。

telnet registry.ityun.ltd 54321 提示,Connection refused,因为这个端口本身就不存在。说明服务器端口是开发的,只是对应的端口没有服务。

“Connection refused”是目标主机明确拒绝了这次连接,有可能是该端口没有启动监听。
“No route to host”是一个网络问题,不是目标主机的回复。

28: linux 根据进程名杀死进程 -kill进程名

一次项目使用的本机机房,linux centos 7 发现电脑cpu 占用异常的高,而且是一个诡异的进程搜索都搜不到,占用700%的cpu

 top命令:  
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                          
13359 root      20   0 2453188   3316   1860 S 746.2  0.0  30:17.06 obama1                                                                                           
  971 root      20   0 1339624 112256  25588 S  27.9  0.3  19:37.62 dockerd  

发现异常的进程就是obama1 ”奥巴马1” 这个进程,我们进行删除。

# 查找并杀死进程
sudo kill -9 $(ps -ef|grep 需要杀死的进程名称这里直接替换|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')

29:linux 根目录爆满 解决 /dev/mapper/centos-root 100%问题

 参考-已成功解决问题:linux 根目录爆满 解决 /dev/mapper/centos-root 100%问题

你可能感兴趣的:(linux安装部署,ssh,linux,服务器)