从零开始学Linux-第四天文件的基本管理和xfs文件系统备份恢复

本次内容:

    1. Linux系统目录结构和相对/绝对路径
    2. 创建/复制/删除文件,rm -rf / 意外事故
    3. 查看文件内容的命令
    4. xfs文件系统的备份和恢复

1. Linux系统目录结构和相对/绝对路径
1.1 系统目录结构

    在Windows系统中,查看文件先进入相应的盘符,然后进入文件目录,在Windows中,是多根 c:\ d:\ e:\,在Linux中只有一个根目录
    使用tree 命令可以查看linux目录结构,这个命令默认没有安装,需要安装一下

[root@localhost ~]# yum -y install tree
[root@localhost ~]# tree -L 1 /
/						#处于linux系统树形结构的最顶端,它是linux文件系统的入口,所有的目录、文件、设备都在 / 之下
├── bin -> usr/bin		#bin是Binary的缩写。常用的二进制命令目录。比如 ls、cp、mkdir、cut等;和/usr/bin类似,一些用户级GNU工具
├── boot				#存放的系统启动相关的文件,例如:kernel.grub(引导装载程序)
├── dev					#dev是Device的缩写。设备文件目录,比如声卡、磁盘……在Linux中一切都被看做文件。终端设备、磁盘等等都被看做文件 设备文件: /dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/cdrom
├── etc					#常用系统及二进制安装包配置文件默认路径和服务器启动命令目录。passwd 用户信息文件,shadow 用户密码文件,group 存储用户组信息,fstab 系统开机启动自动挂载分区列表,hosts 设定用户自己的IP与主机名对应的信息
├── home				#普通用户的家目录默认存放目录
├── lib -> usr/lib		#库文件存放目录,函数库目录
├── lib64 -> usr/lib64	#lib和lib64 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件,这个目录里存放着系统最基本的动态链接共享库,包含许多被/bin/和/sbin/中的程序使用的库文件,目录/usr/lib/中含有更多用于用户程序的库文件。作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
#注:
#lib***.a是静态库
#lib***.so是动态库
#静态库在编译时被加载到二进制文件中
#动态库在运行时加载到进程的内存空间中

├── media				#一般用来临时挂载存储设备的挂载目录,比如有cdrom、U盘等目录在CENTOS7中会挂载到/run下面
├── mnt					#同media	 			
├── opt					#表示的是可选择的意思,有些软件包也会被安装在这里
├── proc				#操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。因此,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里
├── root				#根用户(超级用户)的主目录
├── run					#运行目录,存放的是系统运行时的数据,比如进程的PID文件
├── sbin -> usr/sbin	#大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是root权限才能执行的
├── srv					#服务目录,存放的是我们本地服务的相关文件
├── sys					#系统目录,存放硬件信息的相关文件
├── tmp					#该目录用于存放临时文件,有时用户运行程序的时候,会产生一些临时文件。/tmp就是用来存放临时文件的。/var/tmp目录和该目录的作用是相似的,不能存放重要数据,它的权限比较特殊
├── usr					#存放应用程序和文件,/usr/bin 普通用户使用的应用程序,/usr/sbin 管理员使用的应用程序,/usr/lib 库文件Glibc(32位),/usr/lib64 库文件Glibc
└── var					#系统运行和软件运行时产生的日志信息,该目录的内容是经常变动的,存放的是一些变化的文件。比如/var下有/var/log目录用来存放系统日志的目录,还有mail、/var/spool/cron   

19 directories, 0 files
1.2 绝对路径和相对路径

    路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径。
    绝对路径:以正斜线(/)作为起始,指定文件系统的根目录,比如 /usr /etc/passwd
    相对路径:允许用户指定一个基于当前位置的目标文件路径,它不是以正斜线作为起始,而是以目录名或者一个特殊字符开始。

有两个特殊字符可以用在相对路径当中:
  1. 单点符( . ) 表示的是当前目录
  2. 双点符( … ) 表示当前目录的父目录
2. 文件的管理
文件管理的方式有很多种

    改变目录,改变位置:cd
    创建、修改、移动、删除:touch mkdir mv cp rm

2.1 创建文件和文件夹

命令:touch
作用:
    1. 常用来创建一个空文件
    2. 修改文件的时间
使用方法:touch filename

[root@localhost ~]# touch a.txt
#或使用vim和重定向创建一个新文件
#vim创建的文件不能是空文件
[root@localhost ~]#> c.txt		#重定向创建一个空文件

文件有三种时间:
    Access 访问时间 atime   查看内容:cat a.txt
    Modify 修改时间 mtime   修改内容:vim a.txt
    Change 改变时间 ctime    文件属性:chmod +x a.txt

[root@localhost ~]# ll /etc/passwd
-rw-r--r--. 1 root root 841 Jul 24  2020 /etc/passwd
[root@localhost ~]# stat /etc/passwd
 File: ‘/etc/passwd’
 Size: 841       	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 34033004    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-07-24 06:24:07.851346070 +0800
Modify: 2020-07-24 06:23:57.359346497 +0800
Change: 2020-07-24 06:23:57.359346497 +0800
2.2 创建目录

命令:mkdir
作用:创建目录
使用方法:mkdir [option] directory

[root@localhost ~]#mkdir dir1
[root@localhost ~]#mkdir a/b/c/d
mkdir: cannot create directory ‘a/b/c/d’: No such file or directory
[root@localhost ~]#mkdir -pv a/b/c/d	# -v 显示命令执行过程 -p 递归
mkdir: created directory ‘a’
mkdir: created directory ‘a/b’
mkdir: created directory ‘a/b/c’
mkdir: created directory ‘a/b/c/d’
2.3 删除文件和目录

命令:rm
作用:可以删除一个目录中一个或多个文件和目录,对于链接文件,只是删除整个链接文件,而原文件保持不变
使用方法: rm [option] filename
option:
     -f 强制删除,没有提示
     -r 删除目录

[root@localhost ~]# ll
total 4
drwxr-xr-x  3 root root   15 Nov  5 02:26 a
-rw-------. 1 root root 1219 Jul 22  2020 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Nov  5 01:57 a.txt
[root@localhost ~]# rm -rf a
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1219 Jul 22  2020 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Nov  5 01:57 a.txt

rm -rf(慎用,一定要在删除以前确定一下所在目录,防止误删重要数据,多敲pwd命令来确定一下当前工作目录)

2.4 复制文件

命令:cp 源文件/目录 目录文件/目录
选项:-R/r:递归处理,将指定目录下的所有文件与子目录一并处理

[root@localhost ~]# cp /etc/passwd /mnt/
[root@localhost ~]# ls /mnt/
passwd
[root@localhost ~]# cp /etc/passwd /mnt/mima	#复制的时候直接修改文件或目录名称
[root@localhost ~]# ls /mnt/
mima  passwd
2.5 移动文件

命令:mv 源文件/目录 目的目录

[root@localhost ~]# touch a.txt
[root@localhost ~]# mkdir dir1
[root@localhost ~]# mv a.txt dir1/
[root@localhost ~]# ls dir1/
a.txt
[root@localhost ~]# ls /mnt/
mima  passwd
[root@localhost ~]# mv dir1/a.txt /mnt/b.txt	#移动时也可以支持改名操作
[root@localhost ~]# ls /mnt/
b.txt  mima  passwd
3. 查看文件
3.1 cat

使用方法:cat filename
作用:查看文件内容,一次显示整个文件的内容

[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
3.2 more

使用方法:more filename
作用:以分页形式显示文件的内容,回车键刷新一行,空格键刷新一屏,q键退出。

[root@localhost ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
3.3 less

使用方法:less filename
作用:与more功能相同。
与more的区别:
    more:不支持后退,但几乎不需要加参数,空格向下翻页,Enter向下翻一行,不支持后退。
    less:支持前后页,可以向上(pageup),也可以向下(pagedown),空格向下翻页,Enter向下翻一行。q 退出

[root@localhost ~]# less /etc/passwd
3.4 head

使用方法:head [option] filename
作用:显示文件的开头内容。默认情况下,head只显示文件的头10行内容。
option:-n  显示从文件头开始的行数。(n为数字

[root@localhost ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
3.5 tail

使用方法:tail [option] filename
作用:显示文件中尾部的内容。默认显示指定文件的末尾10行。
option:
    -n  显示文件尾部多少行的内容。(n为数字
    -f  动态显示数据(不关闭) ,常用来查看日志。

[root@localhost ~]# tail -f /var/log/messages
Nov  4 22:19:03 localhost systemd: Removed slice User Slice of root.
Nov  4 22:22:19 localhost systemd: Created slice User Slice of root.
Nov  4 22:22:19 localhost systemd: Started Session 51 of user root.
Nov  4 22:22:19 localhost systemd-logind: New session 51 of user root.
Nov  4 22:22:34 localhost yum[10626]: Installed: tree-1.6.0-10.el7.x86_64
Nov  4 23:01:01 localhost systemd: Started Session 52 of user root.
Nov  5 00:01:01 localhost systemd: Started Session 53 of user root.
Nov  5 01:01:01 localhost systemd: Started Session 54 of user root.
Nov  5 02:01:01 localhost systemd: Started Session 55 of user root.
Nov  5 03:01:01 localhost systemd: Started Session 56 of user root.
[root@localhost ~]# tail -3 /etc/passwd
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
4 XFS文件系统的备份和恢复

   &enspXFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。
    centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,仍然支持ext4,xfs专为大数据产生,每个单个文件系统最大可以支持8eb,单个文件可以支持16tb,不仅数据量大,而且扩展性高。还可以通过xfsdump,xfsrestore来备份和恢复。与传统的UNIX文件系统不同,XFS不需要在备份前被卸载;对使用中的XFS文件系统做备份就可以保证镜像的一致性。XFS的备份和恢复的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地
    xfsdump的备份级别:(默认为0,完全备份
    0:  完全备份
    1-9:增量备份
    扩展:
      完全备份:每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化。
      增量备份:每次将之前(第一次、第二次、直到前一次)做过备份之后有变化的文件进行备份。
      差异备份:每次都将第一次完整备份以来有变化的文件进行备份。

4.1 环境准备

    虚拟机添加一块硬盘后重启

[root@localhost ~]# lsblk 	#可以查看已添加的硬盘
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   50G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
├─sda2            8:2    0    2G  0 part 
│ └─centos-swap 253:0    0    2G  0 lvm  [SWAP]
└─sda3            8:3    0   47G  0 part /
sdb               8:16   0   50G  0 disk 
sr0              11:0    1 1024M  0 rom  
[root@localhost ~]# fdisk /dev/sdb	#对新增硬盘进行分区
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n	#创建新分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p	#创建主分区,只能建4个主分区,默认从1开始
Partition number (1-4, default 1): 
First sector (2048-104857599, default 2048): #起始扇区
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): 结束扇区
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is set

Command (m for help): w	#保存配置
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1
[root@localhost ~]# mkfs.xfs /dev/sdb1	#对分区进行格式化,并进行挂载
[root@localhost ~]#mkdir /sdb1
[root@localhost ~]#mount /dev/sdb1 /sdb1
#准备测试文件
[root@localhost ~]#cd /sdb1
[root@localhost ~]#cp /etc/passwd ./
[root@localhost ~]#mkdir test
[root@localhost ~]#touch test/a.txt
[root@localhost ~]#tree /sdb1/
/sdb1/
├── passwd
└── test
    └── a.txt

1 directory, 2 files
4.2 备份
4.2.1 备份整个分区

使用方法:xfsdump -f 备份存放位置/备份名称 需要备份的路径或设备文件
注意:需要备份的路径不能写成/sdb1/ 。可以是/dev/sdb1 或者/sdb1
最小化安装是没有安装xfsdump和xfsrestore的,这里需要yum安装一下

[root@localhost ~]# yum -y install xfsdump
[root@localhost ~]# xfsdump -f /opt/dump_sdb1 /dev/sdb1 
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control

 ============================= dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb1
session label entered: "dump_sdb1"	#指定备份会话标签

 --------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of localhost.localdomain:/sdb1
xfsdump: dump date: Wed Jul 29 22:24:41 2020
xfsdump: session id: f409df60-f15c-4dad-b2db-b9424dd2ceae
xfsdump: session label: "dump_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 25856 bytes

 ============================= media label dialog =============================

please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb1
media label entered: "sdb1"	#指定设备标签,就是要对备份的设备做一个描述

 --------------------------------- end dialog ---------------------------------

xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 23008 bytes
xfsdump: dump size (non-dir files) : 1056 bytes
xfsdump: dump complete: 19 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/dump_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS


4.2.2 备份时免交互操作,方便定期定时备份
[root@localhost opt]# xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M /etc/passwd
#-L:备份会话的标签
#-M:备份设备的描述
4.2.3 备份分区中某个目录或某个文件

参数-s  文件路径,对指定的文件进行备份,-s  指定时,路径写的是相对路径,可以是路径或目录

[root@localhost ~]# xfsdump -f /opt/dump_test_a.txt -s test/a.txt /sdb1 -L dump_test_a.txt -M a.txt
4.2.4 查看备份信息与内容

备份成功后,我们就可以在/var/lib/xfsdump/inventory 目录下看到生成的档案信息,这里面的信息看的不够直观,可以使用命令查看文件的备份信息。

[root@localhost ~]# xfsdump -I	#i是大写
4.3 文件系统恢复

测试恢复:先删除之前创建的内容

[root@localhost sdb1]# ls
passwd  test
[root@localhost sdb1]# pwd
/sdb1
[root@localhost sdb1]# rm -rf ./*	#删除当前目录下所有文件,注意不是/分区

xfsrestore使用方法:
xfsrestore -f 恢复文件的位置 恢复后文件的路径

#恢复分区
[root@localhost sdb1]# xfsrestore -f /opt/dump_sdb1 /sdb1
[root@localhost sdb1]# ls 	#查看恢复情况
passwd  test
#恢复单个文件
[root@localhost ~]# rm -rf /var/test/*	#先删除之前还原的文件
[root@localhost ~]# xfsrestore -f /opt/dump_test_a.txt -s test/a.txt /var/test/
[root@localhost ~]# ll /var/test/test/	#查看恢复情况
total 0
-rw-r--r-- 1 root root 0 Jul 29 19:29 a.txt
#恢复目录
[root@localhost ~]# xfsrestore -f /opt/dump_test -s test /var/test/


使用xfs时,需要注意的限制
1. xfsdump不支持没有挂载的文件系统备份,只能备份已挂载设备
2. xfsdump必须使用root权限才能操作
3. xfsdump只能备份xfs文件系统
4. 备份下来的数据,只能让xfsrestore解析
5. xfsdump是通过文件系统的UUID来分辨各个备份档的,因此不能备份两个具有相同UUID的文件系统

4.6 增量备份

    增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,以此类推。
    优缺点:
    优点:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短。
    缺点:数据恢复相对比较麻烦,需要上一次全备份和所有增量备份的内容才能够完全恢复成功,并且他们必须沿着从全备份到一次增量备份的时间诸葛反推恢复,因为恢复时间较长。

增量备份

#准备一个目录进行备份
[root@localhost ~]# tree /sdb1/
/sdb1/
├── passwd
└── test
    └── a.txt
#对上面内容进行全备
[root@localhost ~]# xfsdump -f /opt/dump_sdb1_full_2020_07_29 /sdb1 -L sdb1_full -M sdb1
#增加一些内容,进行第一次增量备份
[root@localhost ~]# touch /sdb1/1.txt /sdb1/2.txt
[root@localhost ~]# tree /sdb1
/sdb1
├── 1.txt
├── 2.txt
├── passwd
└── test
    └── a.txt

1 directory, 4 files
[root@localhost ~]# xfsdump -l 1 -f /opt/dump_sdb1_bak1 /sdb1 -L sdb1_bak1 -M sdb1_bak1
#-l <level> 做一个等级为1的备份
#再次增加内容,然后进行level 2的级别备份
[root@localhost ~]# touch /sdb1/test/b.txt /sdb1/test/c.txt
[root@localhost ~]# tree /sdb1
/sdb1
├── 1.txt
├── 2.txt
├── passwd
└── test
    ├── a.txt
    ├── b.txt
    └── c.txt

1 directory, 6 files
[root@localhost ~]# xfsdump -l 2 -f /opt/dump_sdb1_bak2 /sdb1 -L sdb1_bak2 -M sdb1_bak
[root@localhost ~]# rm -rf /sdb1/*		#删除测试数据
[root@localhost ~]# ls /sdb1/			#查看
#恢复全部数据,包括新添加的文件
#步骤:
#	 1.先恢复完全备份
#	 2.情况1:恢复最后一次增量备份,(如果两次增量备份都是1级的,只需要恢复最后一个增量就可以了。)
#	 3.情况2:如果第一次是1级,第二次是2级,那么在恢复的时候就需要先恢复完全备份,然后1级,最后恢复2级
[root@localhost ~]# xfsrestore -f /opt/dump_sdb1_full_2020_07_29 /sdb1/		#恢复完全备份
[root@localhost ~]# xfsrestore -f /opt/dump_sdb1_bak2 /sdb1/				#先恢复2级,查看
[root@localhost ~]# tree /sdb1/		#这里能看到没有1级备份时的1.txt 2.txt
/sdb1/
├── passwd
└── test
    ├── a.txt
    ├── b.txt
    └── c.txt

1 directory, 4 files
[root@localhost ~]# xfsrestore -f /opt/dump_sdb1_bak1 /sdb1/	#恢复1级
[root@localhost ~]# tree /sdb1
/sdb1
├── 1.txt
├── 2.txt
├── passwd
└── test
    ├── a.txt
    ├── b.txt
    └── c.txt

1 directory, 6 files
#至此,数据恢复成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值