标签归档:centos

记一次centos服务器满空间清理

过程记录:

[root@iZ8vb4m3j60ueayf2rziv8Z ~]# df -h   //查看空间使用情况
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   38G     0 100% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  436K  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           380M     0  380M   0% /run/user/0
[root@iZ8vb4m3j60ueayf2rziv8Z ~]# cd /    //跳转根目录
[root@iZ8vb4m3j60ueayf2rziv8Z /]# du -sh *     //查看各目录情况
0       bin
218M    boot
4.0K    data
0       dev
38M     etc
466M    home
0       lib
0       lib64
16K     lost+found
4.0K    media
4.0K    mnt
4.0K    mysql.sql
213M    opt
du: cannot access ‘proc/5646/task/5646/fd/4’: No such file or directory
du: cannot access ‘proc/5646/task/5646/fdinfo/4’: No such file or directory
du: cannot access ‘proc/5646/fd/4’: No such file or directory
du: cannot access ‘proc/5646/fdinfo/4’: No such file or directory
0       proc
220K    root
468K    run
0       sbin
4.0K    srv
0       sys
7.8M    tmp
14G     usr
23G     var
[root@iZ8vb4m3j60ueayf2rziv8Z /]# cd /usr
[root@iZ8vb4m3j60ueayf2rziv8Z usr]# du -sh *
306M    bin
4.0K    etc
4.0K    games
28M     include
340M    java
670M    lib
410M    lib64
63M     libexec
11G     local
443M    sbin
368M    share
350M    src
0       tmp
[root@iZ8vb4m3j60ueayf2rziv8Z usr]# cd local
[root@iZ8vb4m3j60ueayf2rziv8Z local]# du -sh *
351M    aegis
12M     bin
4.0K    etc
4.0K    games
4.0K    include
4.0K    lib
4.0K    lib64
4.0K    libexec
11G     php
4.0K    sbin
92K     share
65M     src
58M     svnRepo
[root@iZ8vb4m3j60ueayf2rziv8Z local]# cd php
[root@iZ8vb4m3j60ueayf2rziv8Z php]# du -sh *
116M    bin
112K    etc
5.0M    include
9.3M    lib
2.4M    log
92K     php
3.4M    phpredis
39M     sbin
10G     var
[root@iZ8vb4m3j60ueayf2rziv8Z php]# cd /var
[root@iZ8vb4m3j60ueayf2rziv8Z var]# du -sh *
4.0K    adm
9.9G    cache
4.0K    crash
28K     db
8.0K    empty
4.0K    games
4.0K    gopher
12K     kerberos
2.5G    lib
4.0K    local
0       lock
3.9G    log
0       mail
4.0K    nis
4.0K    opt
4.0K    preserve
0       run
4.7G    spool
179M    svn
20K     tmp
1.9G    www
4.0K    yp
[root@iZ8vb4m3j60ueayf2rziv8Z var]# cd log
[root@iZ8vb4m3j60ueayf2rziv8Z log]# du -sh *
40K     aliyun-util.log
4.0K    anaconda
39M     audit
0       boot.log
0       boot.log-20211228
0       boot.log-20211229
0       boot.log-20211230
0       boot.log-20211231
0       boot.log-20220101
0       boot.log-20220102
0       boot.log-20220103
18M     btmp
9.2M    btmp-20220101
476M    caigo
4.0K    caigo-error
4.0K    chrony
216K    cron
704K    cron-20211212
984K    cron-20211220
708K    cron-20211226
856K    cron-20220102
36K     dmesg
36K     dmesg.old
12K     firewalld
8.0K    grubby
4.0K    grubby_prune_debug
3.4G    journal
16K     lastlog
0       maillog
0       maillog-20211212
0       maillog-20211220
0       maillog-20211226
0       maillog-20220102
284K    messages
912K    messages-20211212
1.3M    messages-20211220
916K    messages-20211226
1.1M    messages-20220102
28K     mysqld.log
4.0M    mysql.log20200419before
2.7M    nginx
48K     ntp.log
4.0K    ntpstats
8.0K    php-fpm
4.0K    ppp
4.0K    repair.log
4.0K    rhsm
18M     sa
16M     secure
8.2M    secure-20211212
208K    secure-20211220
4.0K    secure-20211226
4.0K    secure-20220102
0       spooler
0       spooler-20211212
0       spooler-20211220
0       spooler-20211226
0       spooler-20220102
0       tallylog
28K     tuned
276K    wtmp
0       yum.log
40K     yum.log-20180101
4.0K    yum.log-20190101
4.0K    yum.log-20200420
[root@iZ8vb4m3j60ueayf2rziv8Z log]# cd journal/
[root@iZ8vb4m3j60ueayf2rziv8Z journal]# du -sh *
3.4G    a9fe31fd96c841a5a16f9c54110b66cc
[root@iZ8vb4m3j60ueayf2rziv8Z journal]# journalctl --disk-usage
Archived and active journals take up 3.3G on disk.
[root@iZ8vb4m3j60ueayf2rziv8Z journal]# journalctl --vacuum-time=30d   只留30天
Deleted archived journal /var/log/journal/a9fe31fd96c841a5a16f9c54110b66cc/system@a04c2e13fe6a4e0b8a6d7aa2908722cb-0000000000000001-0005a3abfd744d0e.journal (64.0M).
Deleted archived journal 
……
Deleted archived journal /var/log/journal/a9fe31fd96c841a5a16f9c54110b66cc/system@a04c2e13fe6a4e0b8a6d7aa2908722cb-00000000002498c0-0005d24fc91bef19.journal (8.0M).
Vacuuming done, freed 2.8G of archived journals on disk.
[root@iZ8vb4m3j60ueayf2rziv8Z journal]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   36G  1.9G  96% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  436K  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           380M     0  380M   0% /run/user/0
[root@iZ8vb4m3j60ueayf2rziv8Z journal]# cd /
[root@iZ8vb4m3j60ueayf2rziv8Z /]# cd var
[root@iZ8vb4m3j60ueayf2rziv8Z var]# du -sh *
4.0K    adm
9.9G    cache
4.0K    crash
28K     db
8.0K    empty
4.0K    games
4.0K    gopher
12K     kerberos
1.5G    lib
4.0K    local
0       lock
1.1G    log
0       mail
4.0K    nis
4.0K    opt
4.0K    preserve
0       run
4.7G    spool
179M    svn
20K     tmp
1.9G    www
4.0K    yp
[root@iZ8vb4m3j60ueayf2rziv8Z var]# cd cache/
[root@iZ8vb4m3j60ueayf2rziv8Z cache]# du -sh *
24K     fontconfig
32K     ldconfig
1.8M    man
9.9G    yum
[root@iZ8vb4m3j60ueayf2rziv8Z cache]# yum clean packages
Loaded plugins: fastestmirror, priorities
Cleaning repos: base epel extras mysql-connectors-community mysql-tools-community mysql57-community remi-safe updates webtatic
2227 package files removed
[root@iZ8vb4m3j60ueayf2rziv8Z cache]# yum clean headers
Loaded plugins: fastestmirror, priorities
Cleaning repos: base epel extras mysql-connectors-community mysql-tools-community mysql57-community remi-safe updates webtatic
0 header files removed
[root@iZ8vb4m3j60ueayf2rziv8Z cache]# yum clean oldheaders
Loaded plugins: fastestmirror, priorities
Error: invalid clean argument: 'oldheaders'
 Mini usage:
clean [headers|packages|metadata|dbcache|plugins|expire-cache|all]
Remove cached data
[root@iZ8vb4m3j60ueayf2rziv8Z cache]# du -sh *
24K     fontconfig
32K     ldconfig
1.8M    man
436M    yum
[root@iZ8vb4m3j60ueayf2rziv8Z cache]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   25G   14G  66% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  436K  1.9G   1% /run
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           380M     0  380M   0% /run/user/0

Point 1:centos清理/dev/vda1系统盘:

df   -h   检查一台服务器磁盘使用空间,发现磁盘已经使用了100%

思路是:

1、cd /usr   当然这里不一定是/usr目录,最好是cd到 根目录再执行下一步

2、du -sh * 看哪个目录占用空间大

3、重复前两步,根据实际情况删除或者移走

4、日志的话可以运行cat /dev/null > file.log清空

5、软件包的可以rpm -e 卸载或者rm -rf dir

即:

具体:可以通过下面的方法进行清理:

使用如下命令查找大于100M的大文件,发现有几个日志文件及临时文件比较大,使用rm –rf删除即可。

    find / -size +100M -exec ls -lh {} \;

    也可以使用 du -h –max-depth=1  /路径  查询文件夹占用显示该目录占用空间的总和

     譬如:du -h –max-depth=1  /var

    删除文件时,要小心,不要删除系统文件了 :)

Point 2:Linux yum清除var下目录缓存

Linux下yum发音(丫目)。

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。提供软件查找、安装、删除某一个或一组甚至全部软件包的命令,而且命令简洁而又好记。

yum的命令形式如下:

yum [options] [command] [package …]

常用的命令包括:

#安装软件 yum install packages

#更新软件 yum update packages

#删除软件 yum remove packages

#清除缓存 yum clean packages

重点介绍:

通常,yum 把下载的header和软件 包 都存储在cache中,而不会自动删除。如果你觉得它们占用了大量磁盘空间,可以使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all全部干掉。

1.清除缓存目录(/var/cache/yum)下的软件 包

命令:yum clean packages

2.清除缓存目录(/var/cache/yum)下的 headers

命令:yum clean headers

3.清除缓存目录(/var/cache/yum)下旧的 headers

命令:yum clean oldheaders

4.清除缓存目录(/var/cache/yum)下的软件 包及旧的headers

Point 3: var/log/journal日志清理:

Linux log日志清理
检查当前journal使用磁盘量

journalctl –disk-usage

清理方法可以采用按照日期清理,或者按照允许保留的容量清理,只保存2天的日志,最大500M

journalctl –vacuum-time=2d
journalctl –vacuum-size=500M

如果要手工删除日志文件,则在删除前需要先轮转一次journal日志

systemctl kill –kill-who=main –signal=SIGUSR2 systemd-journald.service

要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf

SystemMaxUse=16M
ForwardToSyslog=no

然后重启

systemctl restart systemd-journald.service

检查journal是否运行正常以及日志文件是否完整无损坏

journalctl –verify
————————————————————————————————————————————————————

参考:centos 磁盘清理 /dev/vda1系统盘满了

linux yum清除var目录下缓存的方法

/var/log/journal日志清理

Nginx 403 error:directory index of “xxx“ is forbidden

现象:
在部署好Nginx服务器后,输入IP地址和端口号,返回403 Forbiddent。查看日志nginx/logs/error.log,发现报错信息为:directory index of “xxx” is forbidden。
其中,xxx是在/etc/nginx/nginx.conf中指定的root目录。

报错原因:
直接使用IP地址和端口号访问时,需要指定index,如果未指定,就会出现该报错。

解决方法:
在/etc/nginx/nginx.conf中做如下修改:

#在nginx.conf文件中指定index,例如:
index index.html index.htm index.php
#或者在nginx.conf文件中添加自动索引
#但是
autoindex on;    #自动索引

原文:https://www.jianshu.com/p/e837e63ff511

CentOS7查找目录或文件

1.which命令——查找用户所执行的命令文件存放的目录

which命令用于查找Linux命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量PATH决定(可以执行“echo $PATH”命令查看),这个范围也是Linux系统在执行命令或程序时的默认搜索路径。

例:which ls命令后,可以找到名为ls的,位于/usr/bin/ls的命令程序文件。

2. find命令——查找文件或目录

采用递归方式,根据目标的名称,类型,大小等不同属性进行精细查找

find [查找范围]  [查找条件表达式]

查找类型关键字   说明
按名称查找  -name  根据目标文件的名称进行查找,运用“*(所有)”及“?(一个字母)”
按文件大小查找-size一般使用“+”,“-”设置超过指定的大小作为查找条件,常用的容量单位包括kB,MB,GB
按文件属性查找-type根据文件类型进行查找
按用户查找-user根据用户查找

文件类型包括:普通文件(f),目录(d),块设备文件(b) 文字设备文件(c)等

块设备是指读取数据的设备(如硬盘,内存等)

字符设备是指按单个字符读取数据的设备(如键盘,鼠标等)

例:

find / -name a* 查找根目录a开头的文件

find /etc/ -size +50k 查找etc下面文件大于50k的 

find / -user lq 查找系统中属主(用户)为lq的内容

find / -type f 查找系统中的所有文本文件

———————————————————————————————————————–

搜索命令后面+    -exec cp -rf {}   目标地址

将以上的一系列命令保存到 目标地址中。

例:find / -size -5k -a -name c* -a -type f -exec cp -rf {} /opt/bb/ \;

查找系统中小于5k且名称以a开头的且类型为文件的内容并把它复制到/opt/bb目录里面去。

注:以上查找都是广泛查找

各表达式之间使用逻辑运算符 

  “-a” 表示而且 (and)     “-o”表示或者(or)

总结:

1、查找文件

find / -name 'filename'

2、查找文件夹(目录)

find / -name 'path' -type d

3、查找内容

find . | xargs grep -ri 'content'

PS:3.1 只显示文件名称

find . | xargs grep -ril 'content' 只显示文件名称

原文:https://blog.csdn.net/weixin_33851429/article/details/91692620
Centos中查找文件、目录、内容

CentOS 7 配置 nginx php-fpm 详细教程

CentOS 7 配置 Nginx 的步骤如下:

首先更新 yum,没有安装 yum 的自行安装

yum update

1. 安装 Nginx

yum install nginx 

开启 Nginx 并设置开机启动

systemctl start nginx
systemctl enable nginx

完成后,输入 localhost 会显示如下页面,表示安装成功,该页面会由两个信息,一个是配置文件的路径,一个是 www 目录的路径

2. 安装最新版本的 PHP、PHP-FPM

注意 PHP 与 PHP-FPM 版本必须保持一致

yum install php php-fpm php-mysql php-devel php-gd php-pecl-memcache php-pspell php-snmp php-xmlrpc php-xml php-pdo
php-pgsql php-pecl-redis php-soap

安装成功后,运行如下命令查看 php 版本

php -v

默认的 php-fpm 安装成功后,/var/run/php-fpm 下会有一个文件 php-fpm.pid

3. 配置 nginx 解析 php

1)修改 nginx 配置文件

vim /etc/nginx/nginx.conf

在 server 中插入如下代码:

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

###Save user landing page to cookie: srcid for PHP files
##add_header Set-Cookie $srcid;
}

使用如下站点配置指令就可以支持 URL 美化:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

2) 修改 php-fpm 配置文件

vim /etc/php-fpm.d/www.conf

找到以下三行代码并修改如下

user = nginx 
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nignx
listen.group = nginx
listen.mode = 0660

如果没有配置这一步,浏览器打开 php 文件会报错

“The page you are looking for is temporarily unavailable. Please try again later”

3)修改 php.ini

vim /etc/php.ini

找到 cgi.fix_pathinfo 并修改为 0

cgi.fix_pathinfo=0

以上配置完成后,重启 nginx、php-fpm 

systemctl restart php-fpm nginx

测试配置是否成功

vim /usr/share/nginx/html/test.php
<?php
  // test script for CentOS/RHEL 7+PHP 7.2+Nginx 
  phpinfo();
?>

在浏览器打开 lcoalhost/test.php

资料参考:

https://serverfault.com/questions/607370/getting-the-page-you-are-looking-for-is-temporarily-unavailable-please-try-aga

原文链接:https://www.cnblogs.com/ryanzheng/p/11263261.html

CentOS下cp直接覆盖命令的方法

cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当没有打包的情况下直接复制把test目录下的文件复制到test1目录:cp –r test/* test1

执行上面的命令时,test1存在的每个文件都会提示是否覆盖;

cp –rf test/* test1

执行上面的命令时,test1存在的每个文件都不再会提示;

这是我们希望的理想状态,但是有时加了-f了,还会有提示.

因为服务器会默认增加别名 alias cp=’cp -i’,当你执行cp时,其实执行的是cp –i。alias下就可以看出来了。

# alias
可以找到 alias cp=’cp -i’

用下面可以解决

# vi ~/.bashrc

在alias cp=’cp -i’前加上”#”注释掉这行,:wq!保存推出,然后重新登陆就可以了。

下次在使用cp -rf 就可以直接覆盖已经存在了文件了

当然你不想改变别名的话可以转义掉,\cp -rf即可

参考:CentOS下cp如何直接覆盖命令?CentOS下cp直接覆盖命令的方法

Mysql受到爆破攻击导致内存不足挂掉

PHP游戏挂掉,游戏日志里全是mysql的报错,查看/var/log/mysql/mysqld.log,发现受到爆破攻击

截图记录

使用sytemctl restart mysql始终报错,最后在mysqld.log中发现报错:

是系统空间不足导致的,清理系统空间,见CentOS清理/dev/vda1系统盘

这次删掉的是16G大小的/usr/local/php/var/log/php-fpm.log,可怕

随后在控制台关掉了以前没注意到的端口访问问题,现3306端口只能指定IP访问,可避免爆破攻击。

参考:惊魂未定,回忆mysql挂掉运维历程

Linux常用命令

文件操作

查找文件或文件夹:find / -name 文件名或文件夹名
移动/重命名文件:mv 完整文件路径名1 新的完整文件路径名2
复制文件:cp 完整文件路径名1 新的完整文件路径名2

参考:centos彻底删除文件夹、文件命令

网络

查看开放端口:netstat -lnpt
检查端口被哪个进程占用:netstat -lnpt |grep 5672
查看进程的详细信息:ps 6832
中止进程:kill -9 6832

常用

查看状态:systemctl status nginx
启动服务:systemctl start nginx
开机启动:systemctl enable nginx
停止开机启动:systemctl disable nginx
停止服务:systemctl stop nginx
重启服务:systemctl restart nginx
firewalld指令集

Linux CentOS firewall指令集

1、firewalld的基本操作

启动: systemctl start firewalld
查看状态: systemctl status firewalld 
停止: systemctl disable firewalld
禁用: systemctl stop firewalld

2、使用firewalld

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd--zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息:  firewall-cmd--get-active-zones
查看指定接口所属区域: firewall-cmd--get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
开启一个端口:firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)
查看:firewall-cmd --zone=public --query-port=80/tcp
删除:firewall-cmd --zone=public --remove-port=80/tcp --permanent
查看firewall是否运行,下面两个命令都可以:
systemctl status firewalld.service
firewall-cmd --state
查看当前开了哪些端口,一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件:firewall-cmd --list-services
查看还有哪些服务可以打开:firewall-cmd --get-services
查看所有打开的端口: firewall-cmd --zone=public --list-ports
重新载入/更新防火墙规则: firewall-cmd --reload
指定端口:firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="5432" accept"
指定端口段:firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="5432" accept"

参考:CentOS7为firewalld添加开放端口及相关操作
centos7 firewall指定IP与端口访问(常用)

Linux CentOS 8 安装ftp

1. yum -y install vsftp

2. 修改/etc/vsftpd/vsftpd.conf 文件:

anonymous_enable=NO
local_enable=YES
write_enable=YES 
chroot_local_user=YES 
pasv_min_port=10000 
pasv_max_port=11000 
userlist_file=/etc/vsftpd/user_list 
userlist_deny=NO 

3. 开放端口

sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=10000-11000/tcp
firewall-cmd --reload 

4. 创建用户并设置访问

sudo adduser newftpuser
sudo passwd newftpuser 
echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list 
sudo mkdir -p /home/newftpuser/ftp/upload 
sudo chmod 550 /home/newftpuser/ftp 
sudo chmod 750 /home/newftpuser/ftp/upload 
sudo chown -R newftpuser: /home/newftpuser/ftp 

用户将会被允许上传他们的文件到/home/username/ftp/upload目录。

5. Windows ftp工具设置,直接在文件浏览器地址栏中输入ftp://IP地址,使用ftp用户账号密码登录,此前要将IE的Internet选项中【高级】里的【 使用被动FTP(为防火墙和DSL调制解调器兼容性)】 前面的勾去掉。

6.查看ftp运行状态:systemctl status vsftpd

参考:如何在 CentOS 8 上使用 Vsftpd 配置 FTP 服务器
CentOS8.0 安装配置ftp服务器的实现方法
查看和修改Centos系统ftp用户名和密码的方法
打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹