在docker中启动的MySQL数据库的备份和还原
数据库备份
docker exec mysql3318 mysqldump -uroot -p数据库密码 --default-character-set=utf8 --set-gtid-purged=OFF sykj_sys > /data/project/mysql3318/backup/sykj_sys.sql
还原数据:在sql文件的同级目录执行
docker exec -i mysql3306 mysql -uroot -p数据库密码 sykj_gf_sys < ./sykj_sys20240524.sql
删除超过90天的备份文件:测试时先把-exec rm -rf {} \去掉,find出的数据没问题了再加上
find /data/project/mysql3318/backup/ -mtime +90 -name 'sykj*.sql' -exec rm -rf {} \;
创建一个数据库备份和删除超期文件的脚本文件,然后把脚本文件写入到Linux的定时任务中,可实现定时备份数据库
创建脚本文件并写入内容
vi backup.sh
#!/bin/bash
dateStr=$(date +%Y%m%d_%H)
echo 当前时间:$dateStr
echo 开始备份:sykj_sys
docker exec mysql3318 mysqldump -uroot -psykj85575700 --default-character-set=utf8 --set-gtid-purged=OFF sykj_sys > /data/project/mysql3318/backup/sykj_sys_$dateStr.sql
echo 开始备份:sykj_biz
docker exec mysql3318 mysqldump -uroot -psykj85575700 --default-character-set=utf8 --set-gtid-purged=OFF sykj_biz > /data/project/mysql3318/backup/sykj_biz_$dateStr.sql
echo 开始备份:sykj_wf
docker exec mysql3318 mysqldump -uroot -psykj85575700 --default-character-set=utf8 --set-gtid-purged=OFF sykj_wf > /data/project/mysql3318/backup/sykj_wf_$dateStr.sql
echo 开始备份:sykj_stats
docker exec mysql3318 mysqldump -uroot -psykj85575700 --default-character-set=utf8 --set-gtid-purged=OFF sykj_stats > /data/project/mysql3318/backup/sykj_stats_$dateStr.sql
cd /data/project/mysql3318/backup
echo 打包压缩备份文件
tar zcvf data_$dateStr.tar.gz sykj_*_$dateStr.sql
echo 删除原始备份文件
rm -rf sykj_*_$dateStr.sql
创建定时任务
输入以下命令打开创建定时任务的编辑框
crontab -e
然后写入以下内容:
30 12,23 * * * /data/project/mysql/backup.sh >> /data/project/mysql/mysql_bak.log 2>&1
每天的12点半和23点半进行数据备份,同时删除超过90天的备份文件
防火墙操作
关闭:
systemctl stop firewalld
开启:
systemctl start firewalld
禁止开启自启:
systemctl disable firewalld
查看防火墙当前状态:
systemctl status firewalld
查看当前生效的防火墙规则:
firewall-cmd --list-all
重新载入配置,比如添加规则之后,需要执行此命令:
firewall-cmd --reload
开放端口号:
firewall-cmd --add-port=3306/tcp --permanent
移除端口号:
firewall-cmd --remove-port=3306/tcp --permanent
一套操作为:
开发端口号:firewall-cmd --add-port=3306/tcp --permanent
重新载入配置:firewall-cmd --reload
查看是否开发端口号成功:firewall-cmd --list-all
查看cpu情况
查询CPU处理器详细信息
lscpu
cat /proc/cpuinfo
这两组命令返回的数据基本一致
磁盘挂载步骤
1.查看所有磁盘
fdisk -l
或者
lsblk -a 这个是以树结构展示,可读性比较好
lsblk -m
2.为未挂载的磁盘创建分区
fdisk /dev/vdb
然后输入:n
然后输入:p
回车->使用默认值
回车->使用默认值
最后输入:w 这个是保存
3.格式化分区
mkfs.ext4 /dev/vdb1
4.挂载分区到指定目录
mount /dev/vdb1 /data
查看分区的id
blkid /dev/vdb1
5.开机自动挂载配置
编辑相关配置文件: vi /etc/fstab
在文件末尾添加如下内容:
/dev/vdb1 /data ext4 defaults 0 0
6.重启服务器查看磁盘挂载是否正常
重启命令: reboot
重启完毕使用 df -h 命令查看磁盘挂载情况
查看端口号占用情况
安装网络工具: yum install -y net-tools
使用这个命令获取占用此端口号的进程id
netstat -lnp | grep 8080
netstat -tlnp 查看tcp协议的端口号占用情况
netstat -tlnp | grep 3307 查看指定tcp协议的端口号是否被占用
查看端口号和运行程序:
netstat -atunp | more
这个可以列出当前系统中被占用的端口号以及该进程的pid
vi 时快速行首行尾
行首: shift + 6
行尾: shift + 4
降低文件夹权限
有些文件权限过高会导致程序认为高风险而忽略掉,例如MySQL的my.cnf文件,权限过高会导致MySQL忽略掉,文件中的配置信息都不会生效
chmod -R 644 mycat
-R 是递归设置其所有自己
linux:vi 替换命令
:s/^.*$/\L&/100
##将100行内的小写转换成大写
vi/vim 中可以使用 :s 命令来替换字符串。
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
可以使用
:s
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
-bash: ll: command not found 的解决方案
在 .bashrc 文件中新增
alias ll='ls -alhF'
保存退出后执行: source .bashrc
执行完即可使用 ll 命令
du命令,查看磁盘的占用情况
du -h syzhlog/
du -sh ./ 查看当前目录所占磁盘大小
du --max-depth=1 -h ./ 查看当前目录的第一级子目录所占磁盘大小
Linux查看当前操作系统版本信息
方式一: uname -a 可显示电脑以及操作系统的相关信息
方式二: 输入"cat /proc/version",说明正在运行的内核版本。
方式三: 输入"cat /etc/issue", 显示的是发行版本信息
方式四: lsb_release -a (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb) 亲测子系统中可以使用
方式五: cat /etc/os-release 或者 cat /etc/redhat-release
修改系统时间
先使用date命令修改系统时间
date -s "2023-09-18 16:50:30"
然后把系统时间写入到硬件
hwclock -w
curl命令
发送post请求并设置请求头、参数
curl -X POST -H "Content-Type: application/json" -d '{"key1": "value1", "key2": "value2"}' http:
下载图片
curl -o example.jpg https:
使用 -k 参数可以跳过 SSL 证书验证。
例如:curl -k https: