tar是一个已移植到Linux中的经典UNIX命令。tar是Tape ARchive   (磁带归档)的缩写,最初设计用于将文件打包到磁带上。它是一个基于文件 
        的命令,它本质上是连续地、首尾相连地堆放文件。 
      使用tar可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或从中展开单独的文件和目录。备份可以保存到基于文件的设 
      备或磁带设备上。文件可以在还原时重定向,以便将它们重新放到一个与最初保存它们的目录(或系统)不同的目录(或系统)。tar是与文件系统 
      无关的,它可以使用在ext2、ext3、jfs 、Reiser和其他文件系统上。 
      在Linux世界里经常使用tar命令进行备份,此时将涉及tar命令的一些参数。 tar命令的完整格式是: 
        tar   <operation> [options] <files_to_backup_or_restore> 
      其中: 
          operation:用于指定 tar 要进行的操作 
          options:用于指定一系列的选项 
          files_to_backup_or_restore:用于给出要备份或要恢复的文件或目录名,在指定目录时也包括了这个目录下的子目录。 
      下表给出了 tar 命令的操作说明。 
        操作                                             说明 
        [-]A   连接多个归档文件为一个归档文件 
        [-]c   用于创建一个新的存档文件 
        [-]x   从归档文件中恢复备份文件 
        [-]t   用于列出一个存档文件中的文件名 
        [-]u   仅仅添加比存档文件中更新的文件。即,用新增的文件取代原备份文件,如果在归档文件中找不到要更新的文件,则把它追加到备份文件的最后 
        [-]d   将归档文件的内容与文件系统上的当前文件作比较 
        [-]r   将文件追加到指定的归档文件中 
        ––delete   从归档文件中删除指定的文件 
      下表给出了 tar 命令的常用选项说明。 
            选项                           说明 
        -f name         使用name指定存档文件名或设备名 
        -v             列出处理的详细信息 
        -z             用GNU的gzip压缩文件或解压 
        -j             用GNU的bzip2压缩文件或解压 
        -C director   将当前目录切换到 director 
        -M             创建/列出/恢复多卷存档文件,以便在几个备份介质中存放 
        -N DATE         指定仅对那些比DATE新的文件进行操作 
        -p             表示希望保留文件许可权限 
        -P             保留文件的绝对路径,即不去掉/ 
        -w             要求等待用户确认每一个操作 
        -W             表示在写入备份内容到备份设备以后再读出来进行验证以提高可靠性 
        -T filename     从指定的文件中读需要备份或恢复的文件名 
        -X filename     不处理给定文件中列出的文件 
        --exclude=PATTERN   不处理指定的文件 
通常将备份文件存储在单独的分区中,可以是系统本地硬盘中的一个分区,也可以是另外挂装的移动设备中的一个分区。因此,在备份之前,应该创 
          建挂装点目录,并挂装文件系统。 
            # mkdir /backups 
            # mount -t ext3 /dev/sdc1 /backups 
            # mkdir /backups/logs /backups/last-full 
          指定要备份的文件或目录 
          1、使用如下的命令备份指定的一个或多个目录到 /backups   目录中的一个归档文件 
            # tar -zcvpf /backups/full-backup.tar.gz /home 
            # tar -zcvpf /backups/full-backup.tar.gz /home /etc 
          2、使用命令替换生成要备份的目录 
          下面的命令备份整个 / 系统,除了 mnt、media、dev、proc、backups   目录和 lost+found   目录。 
            # tar -zcvpf /backups/full-backup.tar.gz -C / \ 
            > $(ls /| egrep -v "backups|mnt|media|dev|lost+found|proc") 
          3、使用 exclude 选项剔除无需备份的文件或目录 
          1) 下面的命令备份整个 / 系统,除了 mnt、media、dev、proc、backups、var/spool/squid   目录和所有的 lost+found   目录。 
            # tar -zcvpf /backups/full-backup.tar.gz -C / \ 
            > --exclude=mnt --exclude=media --exclude=dev --exclude=proc \ 
            > --exclude=backups --exclude=*/lost+found \ 
            > --exclude=var/spool/squid 
            > .   # 此处的 “.” 表示要备份根目录(因为前面的 “-C /” 将当前目录切换为根目录) 
          2) 下面的命令备份 etc、home、usr/local 和 var/spool   (不包括 var/spool/squid )   目录。 
            # tar -zcvpf /backups/full-backup.tar.gz -C / \ 
            > --exclude=var/spool/squid \ 
            > etc home usr/local var/spool 
          4、将要备份的文件或目录名放入文本文件 
            # cat whatsbackup.txt 
            /home 
            /etc 
            /usr/local 
            /root 
            # tar -zcvpf /backups/full-backup.tar.gz   -T whatsbackup.txt 
            1.   -T 参数后指定的文件中,不能使用文件通配符 
            2.   可以使用 ls 或 find 命令生成 whatsbackup.txt 文件 
          为归档文件名添加时间 
          在归档文件名中使用带有命令替换的 date 命令   。 
          1、只添加日期 
            # tar -zcvpf /backups/full-backup_$(date +%F).tar.gz /home 
            # ls -l /backups 
            -rw-r--r-- 1 root root   125855 01-29 19:09 full-backup_2008-01-29.tar.gz 
          2、添加日期、小时和分钟 
            # tar -zcvpf /backups/full-backup_$(date +%Y%m%d-%H%M).tar.gz /home 
            # ls -l /backups 
            -rw-r--r-- 1 root root   125855 01-29 20:17 full-backup_20080129-2017.tar.gz 

保留备份日志 
        使用输出重定向将 tar 命令的输出结果存入文件。 
          # tar -zcvpf /backups/full-backup_$(date +%F).tar.gz /home \ 
          > > /backups/logs/full-backup_$(date +%F).log \ 
          > 2> /backups/logs/full-backup_$(date +%F).err 
          # tar -zcvpf /backups/full-backup_$(date +%Y%m%d-%H%M).tar.gz /home \ 
          > > /backups/logs/full-backup_$(date +%Y%m%d-%H%M).log \ 
          > 2> /backups/logs/full-backup_$(date +%Y%m%d-%H%M).err 
        增量备份 
        1、使用带 N 选项的 tar 命令实现增量备份 
        下面的命令将备份 /home   目录自 2008-01-29   以来修改过的文件 
          # tar -N 2008-01-29 -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home 
        下面的命令将备份 /home   目录昨天以来修改过的文件 
          # tar -N $(date -d yesterday "+%F") \ 
          > -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home 
        以下两种书写方式均可,但含义有所不同: 
            -N yesterday :   比昨天的当前时间新的文件,例如:若当先时间为 2:31 ,则表示自昨天 2 :31 以来的新文件 
            -N $(date -d yesterday ”+%F”   :   自昨天 0 :00 以来的新文件 
        下面的命令使用命令替换从文本文件中获得日期 
          # tar -N $(cat /backups/last-full/full-backup-date) \ 
          > -zcvpf /backups/inc-backup_$(date +%F).tar.gz /home 
        /backups/last-full/full-backup-date 是在创建完全备份的同时使用如下命令创建的文件: 
          date +%F > /backups/last-full/full-backup-date 
        2、使用 find 命令获取增量备份的文件列表 
        使用如下命令找出 n 天(如:7天)内修改过的文件,生成备份内容的文件列表 
          # find /home /etc /root -mtime -7 -print > /backups/logs/inc-backup_$(date +%F).log 
        对指定文件列表中的文件实现增量备份 
          # tar -zcvpf /backups/inc-backup_$(date +%F).tar.gz \ 
          > -T /backups/logs/inc-backup_$(date +%F).log 
        使用磁带备份 
        与向硬盘文件备份有所不同: 
            -f 参数后要跟磁带机的设备名,如:/dev/sd0 、/dev/nsd0 。 
            由于设备名是固定的,不能像硬盘文件那样在文件名中添加备份时间。此时可以使用   ––label 选项将有关的备份信息写入归档本身。 
            反对将压缩资料写入磁带,因为如果磁带上资料有一部份损坏,会失去整个备份。 
        下面是两个使用磁带备份的例子: 
          # tar -cvpf /dev/st0 --label="Full-backup created on $(date +%Y%m%d-%H%M)." \ 
          > -C / --exclude=var/spool/ etc home usr/local var/spool 
          # tar -cvpf /dev/st0 --label="Incremental-backup created on $(date +%F)." \ 
          > -N $(date -d yesterday "+%F")   /etc /home 
        除了使用 /dev/st0 之外,还可以使用 /dev/nst0 ,他们的区别在于: 
            /dev/st0 –– 磁带在备份完毕会自动回带 
            /dev/nst0 –– 磁带在备份完毕不会自动回带,有可能将好几组备份写到同一磁带 

对于不能自动回带的设备,可以使用如下的命令进行手工回带并退出磁带: 
          # mt -f /dev/nst0 rewind 
          # mt -f /dev/nst0 offline 
          当建立一个归档时, tar 会将文件路径前面的 / (斜线) 去掉。因此,默认恢复文件时将文件释放到当前目录下。 若要将文件释放到指定的目录 
          下,可以使用 -C 选项指定。 
            1.   建议在释放文件之前先使用 -t 选项替换 -x 选项,进行检查。 
            2.   一个更安全的方法是在不同的目录释放文件 (例如您的 home   目录),然后比对确认后,再将释放的文件移动到原始位置。 
          恢复全部文件 
          # 从磁盘文件恢复全部文件 
          # tar -zxvpf /backups/full-backup_2008-01-29.tar.gz -C / 
          # 从磁带中恢复全部文件 
          # tar -xvpf /dev/st0 -C / 
          恢复指定文件 
          # 从磁盘文件恢复指定的文件 
          # tar -zxvpf /backups/full-backup_2008-01-29.tar.gz -C /   \ 
          > etc/passwd etc/shadow 
          # 从磁带中恢复指定的文件 
          # tar -xvpf /dev/st0 -C /   etc/passwd etc/shadow 
          恢复文件的顺序 
          当系统中存在一个完全备份和多个增量备份时,应该首先恢复完全备份,然后按时间顺序依次恢复增量备份。 
          例如:系统存在如下的备份文件: 
          full-backup_2008-01-29.tar.gz 
          inc-backup_2008-01-30.tar.gz 
          inc-backup_2008-01-31.tar.gz 
          inc-backup_2008-02-01.tar.gz 
          inc-backup_2008-02-02.tar.gz 
          inc-backup_2008-02-03.tar.gz 
          应该按照上面的列出顺序依次进行恢复。 
          当系统中存在一个完全备份和多个基于此完全备份的累计备份时,应该首先恢复完全备份,然后再恢复一个累计备份即可。 
          例如:系统存在如下的备份文件: 
          full-backup_2008-01-29.tar.gz 
          diff-backup_2008-01-30.tar.gz 
          diff-backup_2008-01-31.tar.gz 
          diff-backup_2008-02-01.tar.gz 
          diff-backup_2008-02-02.tar.gz 
          diff-backup_2008-02-03.tar.gz 
          要恢复到 2008-02-02 备份前的状态,只要依次恢复 full-backup_2008-01-29.tar.gz 和 diff-backup_2008-02-02.tar.gz 即可。 
          完全备份和累计备份 
          下面的脚本来自 http://www.faqs.org/docs/securing/chap29sec306.html [http://www.proxyserve.net 
          /index.php?q=aHR0cDovL3d3dy5mYXFzLm9y Zy9kb2NzL3NlY3V yaW5nL2NoYXA yO XNlYzMwNi5odG1s ] 
          #!/bin/sh 
          # NAME : /etc/cron.daily/backup.cron 
          # FROM : http://www.faqs.org/docs/securing/chap29sec306.html 
          # full and incremental backup script 

# created 07 February 2000 
            # Based on a script by Daniel O'Callaghan <danny@freebsd.org> 
            # and modified by Gerhard Mourani <gmourani@videotron.ca> 
               
            # 更改如下的 5 个变量以适应您的 computer/backup 
               
            COMPUTER=deep                   # 本机的机器名称 
            DIRECTORIES="/home"             # 要备份的目录 
            BACKUPDIR=/backups               # 备份文件存放的目录 
            TIMEDIR=/backups/last-full       # 存放上次完全备份时间文件的目录 
            TAR=/bin/tar                     # tar 的完整路径 
               
            # 您不应该更改以下的内容 
            LANG=C                         # 设置语言(避免产生中文日期输出) 
            PATH=/usr/local/bin:/usr/bin:/bin 
            DOW=`date +%a`                 # 周几 例如:Mon 
            DOM=`date +%d`                 # 天数 例如:27 
            DM=`date +%d%b`               # 天数和月份 例如:27Sep 
               
            # 每月 1 日生成完全备份 
            # 每周日生成完全备份,并覆盖上周日生成的完全备份 
            # 月内的其他日子生成累计备份,每个累计备份都覆盖上周生成的累计备份 
            # 
            # 如果 NEWER = "",那么备份指定目录中的所有文件(完全备份), 
            # 否则备份比 $NEWER 新的文件,NEWER 的值由每周日写在 
            # /backups/last-full/deep-full-date 的内容获得 
               
            # 每月的完全备份 
            if [ $DOM = "01" ]; then 
                    NEWER="" 
                    $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DM.tar $DIRECTORIES 
            fi 
               
            # 每周的完全备份 
            if [ $DOW = "Sun" ]; then 
                    NEWER="" 
                    NOW=`date +%d-%b` 
               
                    # 更新完全备份的日期 
                    echo $NOW > $TIMEDIR/$COMPUTER-full-date 
                    $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES 
               
            # 生成累计备份 - 覆盖上周相应的文件 
            else 
               
                    # 获取上次完全备份的日期 
                    NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`" 
                    $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES 
            fi 
          为了使用上面的脚本,需要执行如下步骤: 
            # 编辑文件 /etc/cron.daily/backup.cron 
            # vi /etc/cron.daily/backup.cron 
            # 添加执行权限 
            # chmod +x /etc/cron.daily/backup.cron 
              1.   在使用脚本之前,要保证存放备份文件和存放完全备份时间的目录已经存在。 
            2.   若您希望保留备份的属性,请在 tar 命令中添加 -p 选项;若您希望压缩数据,请在 tar 命令中添加 -z 或 -j 选项。 
            3.   若您不是在一个月的 1   日或非周日开始运行此脚本,可以依照脚本中的文件名约定手工创建一个完全备份文件,并用如下的命令将完全备份的 
                  日期写入 /backups/last-full   目录下的文件 $COMPUTER-full-date   中,此脚本默认的文件名是 deep-full-date 。 
            # LANG=C; date +%d%b > /backups/last-full/deep-full-date 
          完全备份和增量备份 
          考察如下的备份脚本: 
            #!/bin/bash 
            # NAME : backup.sh 
            # 2006-03-24         Ver 1.0         Osmond 
            # 
            # 请根据您的需要修改如下变量的值 
            BACKUPDIR=/backups/dat             # 备份文件存放的目录 
            BACKUPLISTDIR=/backups/list       # 要备份目录的文件列表 
            BACKUPLOGDIR=/backups/logs         # 存放上次完全备份时间文件的目录 
            TARPATH="/bin/tar"                 # tar 的完整路径 
            TARCOMPRESS="-z"                   # 压缩算法("-z"|"-j"|"") 
            BACKUPKEEPDAYS=28                 # 保留多少天的备份 
            MAILUSER="smartraining.cn@gmail.com" # 设置备份管理员的 E-mail 
            COMPUTER=$(hostname -s)           # 本机的机器名称 

# 若备份目录不存在,则创建之 
            [ ! -e "/backups/dat" ] && mkdir -p /backups/dat 
            [ ! -e "/backups/list" ] && mkdir -p /backups/list 
            [ ! -e "/backups/logs" ] && mkdir -p /backups/logs 
               
            PATH=/usr/local/bin:/usr/bin:/bin 
            DOW=`date +%w`                     # 周几 [0-6] 
            DATE=`date +%F`                   # 日期 YYYY-MM-DD 
               
            case $TARCOMPRESS in               # 根据压缩方法指定 tar 文件后缀 
            "-z") suffix=".gz" ;; 
            "-j") suffix=".bz2" ;; 
            *) suffix="" ;; 
            esac 
               
            # 生成备份文件名的变量 
            BACKUP_FULL="/$BACKUPDIR/full-backup_$COMPUTER-$DATE.tar$suffix" 
            BACKUP_INC="/$BACKUPDIR/inc-backup_$COMPUTER-$DATE.tar$suffix" 
               
            # 生成 tar 命令及参数的变量 
            TAR="$TARPATH $TARCOMPRESS -cvpf" 
               
            # 生成备份日志文件名的变量 
            BACKUP_FULL_LOG="/$BACKUPLOGDIR/full-backup_$COMPUTER-$DATE.log" 
            BACKUP_FULL_ERR="/$BACKUPLOGDIR/full-backup_$COMPUTER-$DATE.err" 
            BACKUP_INC_LOG="/$BACKUPDIR/inc-backup_$COMPUTER-$DATE.log" 
            BACKUP_INC_ERR="/$BACKUPDIR/inc-backup_$COMPUTER-$DATE.err" 
               
            # 生成完全备份和增量备份的列表文件名的变量 
            BACKUP_FULL_LIST=$BACKUPLISTDIR/fulldirlist 
            BACKUP_INC_LIST=$BACKUPLISTDIR/incfilelist 
               
            if [ $DOW == "0" -o $1 == "init" ] 
            then 
              # 周日进行完全备份 
              echo -e "\n====== $DATE (FULL) ======\n" > $BACKUP_FULL_LOG 
              echo -e "\n====== $DATE (FULL ERR) ======\n" > $BACKUP_FULL_ERR 
              $TAR $BACKUP_FULL -T $BACKUP_FULL_LIST >>$BACKUP_FULL_LOG 2>>$BACKUP_FULL_ERR 
              # 将错误日志作为内容,备份日志作为附件发送给管理员 
              cat $BACKUP_FULL_ERR | mutt -s "Backup LOG -- $COMPUTER" -a $BACKUP_FULL_LOG $MAILUSER 
            else 
              # 周1-6进行增量备份 
              echo -e "\n====== $DATE (INC) ======\n" > $BACKUP_INC_LOG 
              echo -e "\n====== $DATE (INC ERR) ======\n" > $BACKUP_INC_ERR 
              cp /dev/null $BACKUP_INC_LIST 
              # 生成增量备份的文件列表 
              while read dirname 
              do 
                find $dirname -mtime -1 -print >> $BACKUP_INC_LIST 
              done < $BACKUP_FULL_LIST 
              $TAR $BACKUP_INC -T $BACKUP_INC_LIST >>$BACKUP_INC_LOG 2>>$BACKUP_INC_ERR 
              cat $BACKUP_INC_ERR | mutt -s "Backup LOG -- $COMPUTER" -a $BACKUP_INC_LOG $MAILUSER 
            fi 
               
            # 清理备份文件和备份日志文件 
            find $BACKUPDIR $BACKUPLOGDIR -mtime +$BACKUPKEEPDAYS -exec rm -f {} \; 
            为了使用上面的脚本,需要执行如下步骤: 
            1、 编辑文件 /root/bin/backup.sh 并添加执行权限 
            # vi /root/bin/backup.sh 
            # chmod +x /root/bin/backup.sh 
            2、创建完全备份目录列表文件 
            # vi /backups/list/fulldirlist 
            请根据您的需要决定此文件的内容,例如: 
            /etc 
            /var 
            /usr/local 
            /home 
            /root 
            3、 安排cron备份任务 
            # crontab -e 
            若每天 0 :20 执行脚本,则 crontab 为: 

20 0 * * * /root/bin/backup.sh 
        您可以根据自己的需要进行调整。 
        4、若当前不是周日,执行脚本进行首次完全备份 
        # /root/bin/backup.sh init 
        参考 
          http://www.faqs.org/docs/securing/chap29sec306.html [http://www.proxyserve.net 
          /index.php?q=aHR0cDovL3d3dy5mYXFzLm9y Zy9kb2NzL3NlY3V yaW5nL2NoYXA yO XNlYzMwNi5odG1s ] 
          http://linux.vbird.org/linux_basic/0580backup.php#VBird_strategy [http://www.proxyserve.net 
          /index.php?q=aHR0cDovL2xpbnV 4LnZiaXJkLm9yZy9saW51eF9 iYXNpYy8wNTgwYmFja3V wLnBocC NWQ mly ZF9zdHJhdGV neQ 
          ==##V Bird_strategy] 
          显示源文件 
          登录 

tarnbsp;实用大全相关推荐

  1. 服务器内部移动文件速度慢,网站打开速度慢的原因分析已经解决排查方案(实用大全)...

    72018/7 网站打开速度慢的原因分析已经解决排查方案(实用大全) 飞鸟哥上百个案例,3天整理,实证案例,全面,实用! 假如你是网站提供者,或者网站运营者看下文本给你专业全面的经验. 飞鸟哥,根据1 ...

  2. 简单 sql 语句 实用大全

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  3. python实用大全pdf_超级实用干货|九大技巧,带你用Python玩转PDF

    原标题:超级实用干货|九大技巧,带你用Python玩转PDF 尽管PDF最开始是由Adobe发明的,但它现在已经成为国际标准组织ISO维护的公开标准了.大家可以在Python中通过PyPDF2包来处理 ...

  4. 读书笔记之:C/C++程序员实用大全—C/C++最佳编程指南

    这本书中列出了31章共1500个知识点,带有很多的例子.本书适合对C/C++有一些了解的程序员进行查缺补漏.因为这里边对知识点的讲解比较凌乱不是很条理,前面的内容有时就用到了后面内容,如果你不是了解的 ...

  5. centos6.8经典实用大全、教程

    1.安装系统 linux 虚拟机 CentOS: linux系统,[注]windows系统要是64位的系统 putty : windows下面远程连接的工具 xshell : windows下面远程连 ...

  6. 《XML实用大全》一

    第1章 XML概览 本章将向读者介绍XML的基本知识以及概略地解释什么是XML以及如何使用XML.还要向读者说明如何将各种不同的XML表达式组合在一起,XML文档是如何创建的并如何向人们发送这种文档. ...

  7. 电脑快捷键~实用大全

    Win + Tab  打开任务视图,可创建新桌面 Win + L 锁定电脑屏幕 Win + D 回到桌面,即所有视窗最小化 Win + E 打开我的电脑 Win + R 打开运行命令窗口,例如(cmd ...

  8. 程序员熬夜保健实用大全

    熬夜加班,也要有技巧,才能依然身体硬朗.否则,铁打的身体,也受不了如此的日夜操劳呢!因此,想要熬夜的您,千万记住: 1.不要吃泡面来填饱肚子,以免火气太大.最好尽量以水果.土司.面包.清粥小菜来充饥. ...

  9. 编程网站书籍下载大全

    编程网站书籍下载大全 http://www.microsoft.com/msdownload...msdk/sdkupdate/ SDK  http://www.scstlab.com.cn/stan ...

最新文章

  1. TCL中关于管脚(Ports)的一些使用方法?
  2. python 底层原理_Python 探针实现原理
  3. BZOJ - 2744 朋友圈 (二分图上的最大团)
  4. Excel日期格式在matlab中的转换
  5. hdu 4027 Can you answer these queries?
  6. matlab安装详解
  7. 自己读Go程序设计语言的一些总结(更新ing...)
  8. 二维连续傅里叶变换对
  9. 西门子s7-200解密软件下载_西门子S7200plc软件仿真软件使用方法
  10. Android 中的hook技术是什么
  11. Unity VR开发教程 OpenXR+XR Interaction Toolkit 2.1.1 (一) 安装和配置
  12. 波形发生器 -- 输出正弦波,三角波,矩形波,锯齿波,梯形波 -- DAC0832
  13. 用NDK-r25编译libpng
  14. 2.企业发放的奖金根据利润提成。
  15. 12个球用天平秤3次求坏球
  16. Java基础面试题(2022版)
  17. 查看局域网所有MAC地址
  18. Office 2016零售版转换为VOL版本
  19. 微信被封可私聊收费解封 是真的吗?腾讯官方回应来了
  20. 【GXOI/GZOI2019】与或和【单调栈】

热门文章

  1. python和java和c语言的区别-python c 和java的区别有哪些
  2. maxthon 2 ua
  3. 量子解密意味着现在的加密数据十年之内面临裸奔
  4. 【当Idea出现Artifact xx:war exploded: Error during artifact deployment. See server log for details】
  5. response java_java中response对象用法实例分析
  6. 【python基础】pyecharts入门
  7. 五子棋AI算法第二篇-极大极小值搜索算法
  8. react学习系列(二)
  9. A+B Problem IV 大实数加法
  10. 魔兽争霸之最后的反击