目录
使用 tar 命令进行备份和恢复
备份
恢复
使用 rsync 命令进行备份和恢复
备份
恢复
使用 cp 命令进行简单的文件备份
备份
恢复
使用 tar 和 cron 定期备份
使用 cloud backup 工具(如 rclone)
备份到云存储
恢复从云存储
mysql备份恢复命令
iptables 和 firewalld常用命令
iptables 常用命令
firewalld 常用命令
tcpdump 常用抓包命令
备注:
使用 tar
命令进行备份和恢复
备份
tar -czvf backup.tar.gz /path/to/directory
-c
:创建归档。-z
:压缩归档文件(使用 gzip)。-v
:显示详细的过程。-f
:指定归档文件的名称。
恢复
要恢复 tar
备份文件,可以使用 -x
(提取)选项。
tar -xzvf backup.tar.gz -C /path/to/restore
-x
:解包归档。-z
:使用 gzip 解压。-v
:显示详细过程。-f
:指定归档文件。-C
:指定恢复到的目录。
使用 rsync
命令进行备份和恢复
rsync
是一个快速、灵活的文件同步工具,适用于增量备份和大规模文件系统备份。
备份
将本地文件或目录备份到远程服务器:
rsync -avz /path/to/source/ user@remote:/path/to/destination/
-a
:归档模式,保持符号链接、权限、时间戳等。-v
:显示详细过程。-z
:启用压缩。
恢复
将备份的文件从远程服务器恢复到本地:
rsync -avz user@remote:/path/to/backup/ /path/to/local/destination/
使用 cp
命令进行简单的文件备份
cp
命令可以用来复制文件和目录,适合进行简单的备份。
备份
复制文件或目录到备份位置:
cp -r /path/to/source /path/to/backup
-r
:递归复制整个目录。
恢复
从备份位置恢复文件或目录:
cp -r /path/to/backup /path/to/destination
使用 tar
和 cron
定期备份
如果需要定期自动备份,可以将 tar
命令与 cron
(定时任务)结合使用。例如,设置一个每日备份任务:
crontab -e
然后在 cron
文件中添加以下行:
0 2 * * * tar -czvf /path/to/backup/backup_$(date +\%F).tar.gz /path/to/backup/source
这条命令会每天凌晨 2 点自动备份。
使用 cloud backup
工具(如 rclone)
对于需要将备份存储到云存储服务(如 Google Drive, AWS S3 等)的用户,可以使用 rclone
工具:
备份到云存储
rclone copy /path/to/source remote:/path/to/backup
remote:
是指配置好的云存储远程地址。
恢复从云存储
rclone copy remote:/path/to/backup /path/to/destination
mysql备份恢复命令
操作 | 命令 | 说明 |
---|---|---|
备份数据库 | mysqldump -u <用户名> -p <数据库名> > <备份文件名>.sql | 备份指定数据库的所有表结构和数据。 |
备份指定表 | mysqldump -u <用户名> -p <数据库名> <表1> <表2> > <备份文件名>.sql | 备份指定数据库中的指定表。 |
备份所有数据库 | mysqldump -u <用户名> -p --all-databases > <备份文件名>.sql | 备份 MySQL 中的所有数据库。 |
备份数据库结构(不备份数据) | mysqldump -u <用户名> -p -d <数据库名> > <备份文件名>.sql | 仅备份数据库的表结构,不包括数据。 |
备份指定表结构(不备份数据) | mysqldump -u <用户名> -p -d <数据库名> <表1> <表2> > <备份文件名>.sql | 仅备份指定表的表结构,不包括数据。 |
备份数据库并压缩 | `mysqldump -u <用户名> -p <数据库名> | gzip > <备份文件名>.sql.gz` |
恢复数据库 | mysql -u <用户名> -p < <备份文件名>.sql | 恢复备份文件到指定数据库。 |
恢复指定数据库 | mysql -u <用户名> -p <数据库名> < <备份文件名>.sql | 恢复备份文件到指定的数据库(如果备份时未指定数据库,则直接恢复所有数据库)。 |
恢复数据库并替换现有数据 | mysql -u <用户名> -p --force < <备份文件名>.sql | 恢复备份文件时强制覆盖现有数据。 |
恢复数据到新数据库 | mysql -u <用户名> -p -e "CREATE DATABASE <新数据库名>" <br> mysql -u <用户名> -p <新数据库名> < <备份文件名>.sql | 首先创建一个新的数据库,然后恢复备份文件到该数据库中。 |
恢复表到新数据库 | `mysqldump -u <用户名> -p <数据库名> <表名> | mysql -u <用户名> -p <新数据库名>` |
iptables
和 firewalld常用命令
iptables 常用命令
操作 | 命令 | 说明 |
---|---|---|
查看当前规则 | sudo iptables -L | 查看当前所有的防火墙规则。 |
查看规则及详细信息 | sudo iptables -L -v | 查看所有规则的详细信息,包括匹配的流量和字节数等。 |
查看规则及数字格式显示 | sudo iptables -L -n | 以数字格式(IP 和端口)显示当前规则。 |
添加规则(允许访问某端口) | sudo iptables -A INPUT -p tcp --dport <端口号> -j ACCEPT | 允许 TCP 端口 <端口号> 上的访问。 |
删除规则(删除某端口的访问规则) | sudo iptables -D INPUT -p tcp --dport <端口号> -j ACCEPT | 删除允许访问 <端口号> 的规则。 |
添加规则(拒绝某端口的访问) | sudo iptables -A INPUT -p tcp --dport <端口号> -j REJECT | 拒绝访问 TCP 端口 <端口号> 。 |
删除规则(拒绝某端口的访问) | sudo iptables -D INPUT -p tcp --dport <端口号> -j REJECT | 删除拒绝访问 <端口号> 的规则。 |
保存规则 | sudo iptables-save > /etc/iptables/rules.v4 | 保存当前的 iptables 规则到指定文件中。 |
恢复规则 | sudo iptables-restore < /etc/iptables/rules.v4 | 从指定文件恢复保存的 iptables 规则。 |
清除所有规则 | sudo iptables -F | 清除所有的 iptables 规则。 |
重置默认策略为接受 | sudo iptables -P INPUT ACCEPT | 设置 INPUT 链的默认策略为接受。 |
设置默认策略为拒绝 | sudo iptables -P INPUT DROP | 设置 INPUT 链的默认策略为丢弃(拒绝)。 |
firewalld 常用命令
操作 | 命令 | 说明 |
---|---|---|
查看防火墙状态 | sudo firewall-cmd --state | 查看 firewalld 的当前状态(是否运行)。 |
查看当前活动区域 | sudo firewall-cmd --get-active-zones | 查看当前活动的防火墙区域。 |
查看所有区域的规则 | sudo firewall-cmd --list-all | 查看所有区域的防火墙规则。 |
查看特定区域的规则 | sudo firewall-cmd --zone=<区域名称> --list-all | 查看指定区域的防火墙规则。 |
允许端口访问 | sudo firewall-cmd --zone=public --add-port=<端口号>/tcp | 允许某个端口(如 <端口号> )在 public 区域的 TCP 协议下访问。 |
永久允许端口访问 | sudo firewall-cmd --zone=public --add-port=<端口号>/tcp --permanent | 永久允许某个端口(如 <端口号> )在 public 区域的 TCP 协议下访问。 |
删除端口访问规则 | sudo firewall-cmd --zone=public --remove-port=<端口号>/tcp | 删除某个端口(如 <端口号> )在 public 区域的访问规则。 |
永久删除端口访问规则 | sudo firewall-cmd --zone=public --remove-port=<端口号>/tcp --permanent | 永久删除某个端口(如 <端口号> )在 public 区域的访问规则。 |
重新载入防火墙配置 | sudo firewall-cmd --reload | 重新载入防火墙配置,使规则更改生效。 |
查看已启用的服务 | sudo firewall-cmd --list-services | 查看当前启用的服务。 |
添加服务到允许列表 | sudo firewall-cmd --zone=public --add-service=<服务名> | 允许某个服务(如 HTTP, HTTPS)在 public 区域。 |
永久添加服务到允许列表 | sudo firewall-cmd --zone=public --add-service=<服务名> --permanent | 永久允许某个服务(如 HTTP, HTTPS)在 public 区域。 |
删除服务从允许列表 | sudo firewall-cmd --zone=public --remove-service=<服务名> | 删除某个服务(如 HTTP, HTTPS)从 public 区域的允许列表中。 |
永久删除服务从允许列表 | sudo firewall-cmd --zone=public --remove-service=<服务名> --permanent | 永久删除某个服务(如 HTTP, HTTPS)从 public 区域的允许列表中。 |
设置默认区域 | sudo firewall-cmd --set-default-zone=<区域名称> | 设置默认的防火墙区域。 |
禁用防火墙 | sudo systemctl stop firewalld | 停止 firewalld 服务,禁用防火墙。 |
启用防火墙 | sudo systemctl start firewalld | 启动 firewalld 服务。 |
tcpdump 常用抓包命令
操作 | 命令 | 说明 |
---|---|---|
查看所有网络接口 | sudo tcpdump -D | 列出系统中所有可用的网络接口。 |
指定接口进行抓包 | sudo tcpdump -i <接口名> | 在指定的接口(如 eth0 , wlan0 等)上抓取数据包。 |
抓取指定端口的包(TCP端口) | sudo tcpdump -i <接口名> tcp port <端口号> | 抓取指定端口的 TCP 数据包(如 80 端口)。 |
抓取指定端口的包(UDP端口) | sudo tcpdump -i <接口名> udp port <端口号> | 抓取指定端口的 UDP 数据包(如 53 端口)。 |
抓取指定 IP 的数据包 | sudo tcpdump -i <接口名> host <IP地址> | 抓取指定 IP 地址(如 192.168.1.1 )的所有数据包。 |
抓取源 IP 为指定地址的数据包 | sudo tcpdump -i <接口名> src <IP地址> | 抓取源 IP 地址为指定地址的所有数据包。 |
抓取目的 IP 为指定地址的数据包 | sudo tcpdump -i <接口名> dst <IP地址> | 抓取目的 IP 地址为指定地址的所有数据包。 |
抓取指定协议的数据包 | sudo tcpdump -i <接口名> <协议> | 抓取指定协议的所有数据包(如 tcp , udp , icmp 等)。 |
抓取指定大小的数据包 | sudo tcpdump -i <接口名> less <字节数> | 抓取小于指定字节数的包(如抓取小于 100 字节的数据包)。 |
抓取大于指定大小的数据包 | sudo tcpdump -i <接口名> greater <字节数> | 抓取大于指定字节数的包。 |
保存抓包数据到文件 | sudo tcpdump -i <接口名> -w <文件名>.pcap | 将抓取的数据包保存到指定文件(如 capture.pcap )。 |
从文件读取数据包 | sudo tcpdump -r <文件名>.pcap | 从指定的 .pcap 文件中读取并分析数据包。 |
限制抓取数据包的数量 | sudo tcpdump -i <接口名> -c <数量> | 限制抓取的数据包数量(如 10 )。 |
抓取并显示详细信息 | sudo tcpdump -i <接口名> -v | 抓取并显示每个数据包的详细信息。 |
抓取并显示更详细信息 | sudo tcpdump -i <接口名> -vv | 抓取并显示每个数据包的更详细信息。 |
抓取并显示最详细信息 | sudo tcpdump -i <接口名> -vvv | 抓取并显示每个数据包的最详细信息。 |
只显示包头 | sudo tcpdump -i <接口名> -X | 只显示抓取包的内容和数据(以十六进制和 ASCII 格式显示)。 |
只显示包的头部信息 | sudo tcpdump -i <接口名> -S | 显示数据包的头部信息,通常用于 TCP 连接中的序列号和确认号。 |
抓取特定网络段的数据包 | sudo tcpdump -i <接口名> net <网络段> | 抓取特定网络段(如 192.168.1.0/24 )的所有数据包。 |
抓取特定子网的数据包 | sudo tcpdump -i <接口名> net <子网地址> mask <子网掩码> | 抓取特定子网的数据包。 |
抓取ICMP请求和响应(Ping) | sudo tcpdump -i <接口名> icmp | 抓取 ICMP 请求和响应数据包,通常用于诊断网络连接(Ping)。 |
显示每个包的时间戳 | sudo tcpdump -i <接口名> -tttt | 在显示抓取包时,打印精确的时间戳。 |
抓取特定TCP标志的数据包 | sudo tcpdump -i <接口名> 'tcp[tcpflags] == tcp-syn' | 抓取 TCP SYN 包,用于建立连接。 |
抓取不包含某些数据包 | sudo tcpdump -i <接口名> not <协议> | 抓取不包含指定协议的数据包(如 not udp )。 |
抓取来自特定 IP 和端口的数据包 | sudo tcpdump -i <接口名> src <源IP> and port <端口号> | 抓取来自特定源 IP 和端口的数据包。 |
抓取包含特定字符串的包 | sudo tcpdump -i <接口名> -A 'string' | 抓取包含特定字符串的包,并以 ASCII 格式显示包内容。 |
抓取并以 CSV 格式保存数据包 | sudo tcpdump -i <接口名> -tttt -n -v -w capture.pcap | 捕获数据包并将其保存为 CSV 文件格式,进行详细分析。 |
备注:
tcpdump
是一个强大的网络抓包工具,支持多种协议分析和灵活的过滤器设置。- 捕获数据时,如果目标是大量数据包,建议加上
-c
参数限制捕获数量,以防占用过多的系统资源。 - 使用
-w
可以将抓包内容保存为文件,后续可用-r
参数读取并进行分析。 - 捕获大量网络数据时,可以加上
-n
参数避免 DNS 解析,提高性能。