Linux服务器常用命令

MySQL相关配置

1.解决group_concat长度限制

1
SET GLOBAL group_concat_max_len=102400;

2.用户权限修改与增加

1
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK TABLES ON `db_xx`.* TO 'user_rw'@'%'

3.设置密码

1
create user zhangsan identified by 'zhangsan_passwd';

搭建服务器

1.设置数据库可以外网连接(可选)

1
2
3
4
use mysql;
select host,user,password from user;
update user set host="%" where host="::1" and user = "";
flush privileges;

2.修改nginx配置文件,并赋权限700

1
chmod 700 * -R

重置mysql密码

1
2
3
vim /etc/my.cnf
[mysqld]
skip-grant-tables

常用Shell脚本

1.建立时间戳文件

1
touch -t 11020000 timestamp1

2.查找两个指定时间内的全部文件

1
find ./ -newer timestamp1 ! -newer timestamp2 -exec cp -a {} /pic/ \;

3.备份全部数据库

1
mysqldump --all-databases -h127.0.0.1 -uroot -p > allbackupfile.sql

4.备份部分数据库

1
mysqldump -u root -p data >data.sql

5.自动备份

1
30 1 * * * root mysqldump -u root -ppassword --all-databases > /data/database_`date '+%m-%d-%Y'/`.sql

nmap命令

用nmap对局域网扫描一遍,然后查看arp缓存表就可以知道局域内ip对应的mac了。nmap比较强大也可以直接扫描mac地址和端口。执行扫描之后就可以 cat /proc/net/arp查看arp缓存表了。

进行ping扫描,打印出对扫描做出响应的主机:  

1
$ nmap -sP 192.168.1.0/24

仅列出指定网络上的每台主机,不发送任何报文到目标主机: 

1
$ nmap -sL 192.168.1.0/24

探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS 22,23,25,80):  

1
$ nmap -PS 192.168.1.234

使用UDP ping探测主机:

1
$ nmap -PU 192.168.1.0/24

使用频率最高的扫描选项(SYN扫描,又称为半开放扫描),它不打开一个完全的TCP连接,执行得很快: 

1
$ nmap -sS 192.168.1.0/24

挂载阿里云硬盘

1、查看未挂载的硬盘

1
fdisk -l

2、直接格式化

1
mkfs.ext4 /dev/xvdb

3、新建文件夹

1
mkdir /data

4、挂载硬盘

1
mount /data /mnt/xvdb

6、设置开机自动挂载

1
/dev/xvdb       /data           ext4    defaults            0       0

重启后生效

7、查找并替换文件内容

1
sed -i "s/charset=gb2312/charset=utf-8/g" `grep charset=gb2312 -rl ./

8、查找文件内容

1
find .|xargs grep gb

生成公钥

1
ssh-keygen -b 4096 -t rsa

删除乱码文件

1
2
ls -liaha
find . -inum 492311024 -exec rm {} -rf \;

安装ab

1
yum -y install httpd-tools

去掉^M

1
:%s/\r//g

系统时间矫正

1
ntpdate 210.72.145.39

匹配并替换

1
find -name '*.html' |xargs sed -i 's/2005-2010/2005-2017/g'

禁止openvpn拉取route

1
route-nopull