实作 Quota 流程-1:文件系统支持

[root@www ~]# df -h /home
Filesystem     Size  Used Avail Use% Mounted on
/dev/hda3      4.8G  740M  3.8G  17% /home  <==鸟哥主机的 /home 确实是独立的!

[root@www ~]# mount | grep home
/dev/hda3 on /home type ext3 (rw)

从上面的数据来看,这部主机的 /home 确实是独立的 filesystem,因此可以直接限制 /dev/hda3 。 如果你的系统的 /home 并非独立的文件系统,那么可能就得要针对根目录 (/) 来规范了!不过,不太建议在根目录配置 Quota。 此外,由於 VFAT 文件系统并不支持 Linux Quota 功能,所以我们得要使用 mount 查询一下 /home 的文件系统为何? 看起来是 Linux 传统的 ext2/ext3 ,这种文件系统肯定有支持 Quota 啦!没问题!



        如果只是想要在这次启动中实验 Quota ,那么可以使用如下的方式来手动加入 quota 的支持:

[root@www ~]# mount -o remount,usrquota,grpquota /home
[root@www ~]# mount | grep home
/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)
# 重点就在於 usrquota, grpquota !注意写法!

事实上,当你重新挂载时,系统会同步升级 /etc/mtab 这个文件, 所以你必须要确定 /etc/mtab 已经加入 usrquota, grpquota 的支持到你所想要配置的文件系统中。 另外也要特别强调,使用者与群组的 quota 文件系统支持参数分别是:usrquota, grpquota !千万不要写错了!这一点非常多初接触 Quota 的朋友常常搞错。

不过手动挂载的数据在下次重新挂载就会消失,因此最好写入配置档中啊!

[root@www ~]# vi /etc/fstab
LABEL=/home   /home  ext3   defaults,usrquota,grpquota  1 2
# 其他项目鸟哥并没有列出来!重点在於第四栏位!於 default 后面加上两个参数!

[root@www ~]# umount /home
[root@www ~]# mount -a
[root@www ~]# mount | grep home
/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)

还是要再次的强调,修改完 /etc/fstab 后,务必要测试一下!若有发生错误得要赶紧处理! 因为这个文件如果修改错误,是会造成无法启动完全的情况啊!切记切记!最好使用 vim 来修改啦! 因为会有语法的检验,就不会让你写错字了!

实作 Quota 流程-2:创建 quota 记录档

其实 Quota 是透过分析整个文件系统中,每个使用者(群组)拥有的文件总数与总容量, 再将这些数据记录在该文件系统的最顶层目录,然后在该记录档中再使用每个帐号(或群组)的限制值去规范磁碟使用量的。 所以啦,建置这个 Quota 记录档就显的非常的重要。扫瞄有支持 Quota 参数 (usrquota, grpquota) 的文件系统, 就使用 quotacheck 这个命令!这个命令的语法如下:

quotacheck :扫瞄文件系统并创建 Quota 的记录档

[root@www ~]# quotacheck [-avugfM] [/mount_point]
选项与参数:
-a  :扫瞄所有在 /etc/mtab 内,含有 quota 支持的 filesystem,加上此参数后,
      /mount_point 可不必写,因为扫瞄所有的 filesystem 了嘛!
-u  :针对使用者扫瞄文件与目录的使用情况,会创建 aquota.user
-g  :针对群组扫瞄文件与目录的使用情况,会创建 aquota.group
-v  :显示扫瞄过程的资讯;
-f  :强制扫瞄文件系统,并写入新的 quota 配置档 (危险)
-M  :强制以读写的方式扫瞄文件系统,只有在特殊情况下才会使用。

quotacheck 的选项你只要记得『 -avug 』一起下达即可!那个 -f 与 -M 是在文件系统可能已经启动 quota 了, 但是你还想要重新扫瞄文件系统时,系统会要求你加入那两个选项啦 (担心有其他人已经使用 quota 中)!平时没必要不要加上那两个项目。

# 针对整个系统含有 usrquota, grpquota 参数的文件系统进行 quotacheck 扫瞄
[root@www ~]# quotacheck -avug
quotacheck: Scanning /dev/hda3 [/home] quotacheck: Cannot stat old user quota
file: No such file or directory <==有找到文件系统,但尚未制作记录档!
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
done  <==上面三个错误只是说明记录档尚未创建而已,可以忽略不理!
quotacheck: Checked 130 directories and 107 files <==实际搜寻结果
quotacheck: Old file not found.
quotacheck: Old file not found.
# 若运行这个命令却出现如下的错误信息,表示你没有任何文件系统有启动 quota 支持!
# quotacheck: Can't find filesystem to check or filesystem not mounted with
# quota option.

[root@www ~]# ll -d /home/a*
-rw------- 1 root root 8192 Mar  6 11:58 /home/aquota.group
-rw------- 1 root root 9216 Mar  6 11:58 /home/aquota.user
# 在鸟哥的案例中,/home 独立的文件系统,因此搜寻结果会将两个记录档放在
# /home 底下。这两个文件就是 Quota 最重要的资讯了!

这个命令只要进行到这里就够了,不要反覆的进行!因为等一下我们会启动 quota 功能,若启动后你还要进行 quotacheck , 系统会担心破坏原有的记录档,所以会产生一些错误信息警告你。如果你确定没有任何人在使用 quota 时, 可以强制重新进行 quotacheck 的动作。强制运行的情况可以使用如下的选项功能:

# 如果因为特殊需求需要强制扫瞄已挂载的文件系统时
[root@www ~]# quotacheck -avug -mf
quotacheck: Scanning /dev/hda3 [/home] done
quotacheck: Checked 130 directories and 109 files
# 数据要简洁很多!因为有记录档存在嘛!所以警告信息不会出现!

这样记录档就创建起来了!你不用手动去编辑那两个文件~因为那两个文件是 quota 自己的数据档,并不是纯文字档啦! 且该文件会一直变动,这是因为当你对 /home 这个文件系统进行操作时,你操作的结果会影响磁碟吧! 所以当然会同步记载到那两个文件中啦!所以要创建 aquota.user, aquota.group,记得使用的是 quotacheck 命令! 不是手动编辑的喔!

实作 Quota 流程-3:Quota 启动、 关闭与限制值配置

制作好 Quota 配置档之后,接下来就是要启动 quota 了!启动的方式很简单!使用 quotaon ,至於关闭就用 quotaoff 即可

quotaon :启动 quota 的服务

[root@www ~]# quotaon [-avug]
[root@www ~]# quotaon [-vug] [/mount_point]
选项与参数:
-u  :针对使用者启动 quota (aquota.user)
-g  :针对群组启动 quota (aquota.group)
-v  :显示启动过程的相关信息;
-a  :根据 /etc/mtab 内的 filesystem 配置启动有关的 quota ,若不加 -a 的话,
      则后面就需要加上特定的那个 filesystem 喔!

# 由於我们要启动 user/group 的 quota ,所以使用底下的语法即可
[root@www ~]# quotaon -auvg
/dev/hda3 [/home]: group quotas turned on
/dev/hda3 [/home]: user quotas turned on

# 特殊用法,假如你的启动 /var 的 quota 支持,那么仅启动 user quota 时
[root@www ~]# quotaon -uv /var

这个『 quotaon -auvg 』的命令几乎只在第一次启动 quota 时才需要进行!因为下次等你重新启动系统时, 系统的 /etc/rc.d/rc.sysinit 这个初始化脚本就会自动的下达这个命令了!

quotaoff :关闭 quota 的服务

[root@www ~]# quotaoff [-a]
[root@www ~]# quotaoff [-ug] [/mount_point]
选项与参数:
-a  :全部的 filesystem 的 quota 都关闭 (根据 /etc/mtab)
-u  :仅针对后面接的那个 /mount_point 关闭 user quota
-g  :仅针对后面接的那个 /mount_point 关闭 group quota

edquota :编辑帐号/群组的限值与宽限时间

edquota 是 edit quota 的缩写,所以就是用来编辑使用者或者是群组限额的命令罗。

[root@www ~]# edquota [-u username] [-g groupname]
[root@www ~]# edquota -t  <==修改宽限时间
[root@www ~]# edquota -p 范本帐号 -u 新帐号
选项与参数:
-u  :后面接帐号名称。可以进入 quota 的编辑画面 (vi) 去配置 username 的限制值;
-g  :后面接群组名称。可以进入 quota 的编辑画面 (vi) 去配置 groupname 的限制值;
-t  :可以修改宽限时间。
-p  :复制范本。那个 范本帐号 为已经存在并且已配置好 quota 的使用者,
      意义为『将 范本帐号 这个人的 quota 限制值复制给 新帐号 』!

范例一:配置 dmtsai 这个使用者的 quota 限制值
[root@www ~]# edquota -u myquota1
Disk quotas for user myquota1 (uid 710):
  Filesystem    blocks  soft   hard  inodes  soft  hard
  /dev/hda3         80     0      0      10     0     0

上头第一行在说明针对哪个帐号 (myquota1) 进行 quota 的限额配置,第二行则是标头行,里面共分为七个栏位, 七个栏位分别的意义为:



    1、文件系统 (filesystem):说明该限制值是针对哪个文件系统 (或 partition);

    2、磁碟容量 (blocks):这个数值是 quota 自己算出来的,单位为 Kbytes,请不要更动他;

    3、soft:磁碟容量 (block) 的 soft 限制值,单位亦为 KB

    4、hard:block 的 hard 限制值,单位 KB;

    5、文件数量 (inodes):这是 quota 自己算出来的,单位为个数,请不要更动他;

    6、soft:inode 的 soft 限制值;

    7、hard:inode 的 hard 限制值;

        当 soft/hard 为 0 时,表示没有限制的意思。好,依据我们的范例说明,我们需要配置的是 blocks 的 soft/hard ,至於 inode 则不要去更动他!因此上述的画面我们将他改成如下的模样:

Disk quotas for user myquota1 (uid 710):
  Filesystem    blocks    soft    hard  inodes  soft  hard
  /dev/hda3         80  250000  300000      10     0     0
# 鸟哥使用 1000 去近似 1024 的倍数!比较好算啦!然后就可以储存后离开罗!

# 将 myquota1 的限制值复制给其他四个帐号
[root@www ~]# edquota -p myquota1 -u myquota2
[root@www ~]# edquota -p myquota1 -u myquota3
[root@www ~]# edquota -p myquota1 -u myquota4
[root@www ~]# edquota -p myquota1 -u myquota5

[root@www ~]# edquota -g myquotagrp
Disk quotas for group myquotagrp (gid 713):
  Filesystem    blocks    soft     hard  inodes  soft  hard
  /dev/hda3        400  900000  1000000      50     0     0
# 记得,单位为 KB 喔!

# 宽限时间原本为 7 天,将他改成 14 天吧!
[root@www ~]# edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem         Block grace period     Inode grace period
  /dev/hda3                14days                  7days
# 原本是 7days ,我们将他给改为 14days 喔!

实作 Quota 流程-4:Quota 限制值的报表

quota :单一用户的 quota 报表

[root@www ~]# quota [-uvs] [username]
[root@www ~]# quota [-gvs] [groupname]
选项与参数:
-u  :后面可以接 username ,表示显示出该使用者的 quota 限制值。若不接 username
      ,表示显示出运行者的 quota 限制值。
-g  :后面可接 groupname ,表示显示出该群组的 quota 限制值。
-v  :显示每个用户在 filesystem 的 quota 值;
-s  :使用 1024 为倍数来指定单位,会显示如 M 之类的单位!

# 直接使用 quota 去显示出 myquota1 与 myquota2 的限额
[root@www ~]# quota -uvs myquota1 myquota2
Disk quotas for user myquota1 (uid 710):
   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace
    /dev/hda3      80   245M   293M              10       0       0
Disk quotas for user myquota2 (uid 711):
   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace
    /dev/hda3      80   245M   293M              10       0       0
# 这个命令显示出来的数据跟 edquota 几乎是一模一样的!只是多了个 grace 项目。
# 你会发现 grace 底下没有任何数据,这是因为我们的使用量 (80) 尚未超过 soft

# 显示出 myquotagrp 的群组限额
[root@www ~]# quota -gvs myquotagrp
Disk quotas for group myquotagrp (gid 713):
   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace
    /dev/hda3     400   879M   977M              50       0       0

repquota :针对文件系统的限额做报表

[root@www ~]# repquota -a [-vugs]
选项与参数:
-a  :直接到 /etc/mtab 搜寻具有 quota 标志的 filesystem ,并报告 quota 的结果;
-v  :输出的数据将含有 filesystem 相关的细部资讯;
-u  :显示出使用者的 quota 限值 (这是默认值);
-g  :显示出个别群组的 quota 限值。
-s  :使用 M, G 为单位显示结果

# 查询本案例中所有使用者的 quota 限制情况:
[root@www ~]# repquota -auvs
*** Report for user quotas on device /dev/hda3    <==针对 /dev/hda3
Block grace time: 14days; Inode grace time: 7days <==block 宽限时间为 14 天
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --    651M       0       0              5     0     0
myquota1  --      80    245M    293M             10     0     0
myquota2  --      80    245M    293M             10     0     0
myquota3  --      80    245M    293M             10     0     0
myquota4  --      80    245M    293M             10     0     0
myquota5  --      80    245M    293M             10     0     0

Statistics:  <==这是所谓的系统相关资讯,用 -v 才会显示
Total blocks: 9
Data blocks: 2
Entries: 22
Used average: 11.000000

实作 Quota 流程-5:测试与管理

# 测试一:利用 myquota1 的身份,建置一个 270MB 的大文件,并观察 quota 结果!
[myquota1@www ~]$ dd if=/dev/zero of=bigfile bs=1M count=270
hda3: warning, user block quota exceeded.
270+0 records in
270+0 records out
283115520 bytes (283 MB) copied, 3.20282 seconds, 88.4 MB/s
# 注意看,我是使用 myquota1 的帐号去进行 dd 命令的喔!不要恶搞啊!
# 然后你可以发现出现一个 warning 的信息喔!接下来看看报表。

[root@www ~]# repquota -auv
*** Report for user quotas on device /dev/hda3
Block grace time: 14days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
myquota1  +-  276840  250000  300000 13days      11     0     0
# 这个命令则是利用 root 去查阅的!
# 你可以发现 myquota1 的 grace 出现!并且开始倒数了!

# 测试二:再创建另外一个大文件,让总容量超过 300M !
[myquota1@www ~]$ dd if=/dev/zero of=bigfile2 bs=1M count=300
hda3: write failed, user block limit reached.
dd: writing `bigfile2': Disk quota exceeded <==看!错误信息不一样了!
23+0 records in  <==没办法写入了!所以只记录 23 笔
22+0 records out
23683072 bytes (24 MB) copied, 0.260081 seconds, 91.1 MB/s

[myquota1@www ~]$ du -sk
300000  .  <==果然是到极限了!

此时 myquota1 可以开始处理他的文件系统了!如果不处理的话,最后宽限时间会归零,然后出现如下的画面:

[root@www ~]# repquota -au
*** Report for user quotas on device /dev/hda3
Block grace time: 00:01; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
myquota1  +-  300000  250000  300000   none      11     0     0
# 倒数整个归零,所以 grace 的部分就会变成 none 啦!不继续倒数

warnquota :对超过限额者发出警告信

warnquota字面上的意义就是 quota 的警告 (warn) 嘛!那么这东西有什么用呢?他可以依据 /etc/warnquota.conf 的配置,然后找出目前系统上面 quota 用量超过 soft (就是有 grace time 出现的那些家伙) 的帐号,透过 email 的功能将警告信件发送到使用者的电子邮件信箱。 warnquota 并不会自动运行,所以我们需要手动去运行他。单纯运行『 warnquota 』之后,他会发送两封信出去, 一封给 myquota1 一封给 root

[root@www ~]# warnquota
# 完全不会出现任何信息!没有信息就是『好信息』! ^_^

[root@www ~]# mail
 N329 root@www.vbird.tsai   Fri Mar  6 16:10  27/1007  "NOTE: ....
& 329   <==因为新信件在第 329 封之故
From root@www.vbird.tsai  Fri Mar  6 16:10:18 2009
Date: Fri, 6 Mar 2009 16:10:17 +0800
From: root <root@www.vbird.tsai>
Reply-To: root@myhost.com
Subject: NOTE: You are exceeding your allocated disk space limits
To: myquota1@www.vbird.tsai
Cc: root@www.vbird.tsai   <==注意这三行,分别是标题、收件者与副本 (CC)。

Your disk usage has exceeded the agreed limits on this server <==问题说明
Please delete any unnecessary files on following filesystems:

/dev/hda3  <==底下这几行为发生磁碟『爆表』的资讯啦!
                        Block limits               File limits
Filesystem           used    soft    hard  grace    used  soft  hard  grace
/dev/hda3      +-  300000  250000  300000 13days      12     0     0

root@localhost  <==这个是警告信息发送者的『签名数据』啦!

& exit  <==离开 mail 程序!

[root@www ~]# warnquota
# 完全不会出现任何信息!没有信息就是『好信息』! ^_^

[root@www ~]# mail
 N329 root@www.vbird.tsai   Fri Mar  6 16:10  27/1007  "NOTE: ....
& 329   <==因为新信件在第 329 封之故
From root@www.vbird.tsai  Fri Mar  6 16:10:18 2009
Date: Fri, 6 Mar 2009 16:10:17 +0800
From: root <root@www.vbird.tsai>
Reply-To: root@myhost.com
Subject: NOTE: You are exceeding your allocated disk space limits
To: myquota1@www.vbird.tsai
Cc: root@www.vbird.tsai   <==注意这三行,分别是标题、收件者与副本 (CC)。

Your disk usage has exceeded the agreed limits on this server <==问题说明
Please delete any unnecessary files on following filesystems:

/dev/hda3  <==底下这几行为发生磁碟『爆表』的资讯啦!
                        Block limits               File limits
Filesystem           used    soft    hard  grace    used  soft  hard  grace
/dev/hda3      +-  300000  250000  300000 13days      12     0     0

root@localhost  <==这个是警告信息发送者的『签名数据』啦!

& exit  <==离开 mail 程序!

如果你重复运行 warnquota ,那么 myquota1 就会收到类似如下的信件内容:

Subject: 注意:你在本系统上拥有的文件容量已经超过最大容许限额
To: myquota1@www.vbird.tsai
Cc: root@www.vbird.tsai

你的磁碟容量已经超过本机的容许限额,
  请在如下的文件系统中,删除不必要的文件:

/dev/hda3

Filesystem           used    soft    hard  grace    used  soft  hard  grace
/dev/hda3      +-  300000  250000  300000   none      11     0     0

你的系统管理员 (root@localhost)

不过这个方法并不适用在 /var/spool/mail 也爆表的 quota 控管中,因为如果使用者在这个 filesystem 的容量已经爆表,那么新的信件当然就收不下来啦!此时就只能等待使用者自己发现并跑来这里删除数据, 或者是请求 root 帮忙处理罗!知道了这玩意儿这么好用,那么我们怎么让系统自动的运行 warnquota 呢? 你可以这样做:

[root@www ~]# vi /etc/cron.daily/warnquota
/usr/sbin/warnquota
# 你没有看错!只要这一行,且将运行档以绝对路径的方式写入即可!

[root@www ~]# chmod 755 /etc/cron.daily/warnquota

setquota :直接於命令中配置 quota 限额

如果你想要使用 script 的方法来创建大量的帐号,并且所有的帐号都在创建时就给予 quota ,那该如何是好? 其实有两个方法可以考虑:

  

    1、先创建一个原始 quota 帐号,再以『 edquota -p old -u new 』写入 script 中;

    2、直接以 setquota 创建用户的 quota 配置值。

不同於 edquota 是呼叫 vi 来进行配置,setquota 直接由命令输入所必须要的各项限制值。 他的语法有点像这样:

[root@www ~]# setquota [-u|-g] 名称 block(soft) block(hard) \
>  inode(soft) inode(hard) 文件系统

# 观察原始的 myquota5 限值,并给予 soft/hard 分别为 100000/200000
[root@www ~]# quota -uv myquota5
Disk quotas for user myquota5 (uid 714):
   Filesystem blocks  quota  limit  grace files  quota  limit  grace
    /dev/hda3     80 250000 300000           10      0      0

[root@www ~]# setquota -u myquota5 100000 200000 0 0 /home

[root@www ~]# quota -uv myquota5
Disk quotas for user myquota5 (uid 714):
   Filesystem blocks  quota  limit  grace files  quota  limit  grace
    /dev/hda3     80 100000 200000           10      0      0
# 看吧!真的有改变过来!这就是 quota 的简单脚本配置语法!

Linux - quota的举例说明的更多相关文章

  1. Linux:quota磁盘配额设置

    磁盘配额的概念 quota 磁盘配额功能只在指定的文件系统(分区)内有效,未设置配额的文件系统不受限制. quota 针对指定的用户账号.组账号进行限制,其他用户或组不受影响. 磁盘配额可以进行两方面 ...

  2. Linux quota命令参数及用法详解---Linux磁盘配额限制设置和查看命令

    功能说明:显示磁盘已使用的空间与限制. 语 法:quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...] 补充说明:执行quota指令,可查询磁盘空间的限制,并得 ...

  3. Linux Tcpdump 使用举例 ---持续更新

    举例: 保存到文件tcpdump -w xxx.cap(默认抓取eth0的包) 抓eth1的包 tcpdump -i eth1 -w /tmp/xxx.cap 抓到完成的数据包(默认只抓前68字节) ...

  4. linux quota磁盘限额,引发的rename系统调用 errno:18 - Invalid cross-device link

    起因: log4j日志滚动失败,debug发现jvm调用native方法rename失败,也就是系统调用rename失败. 自己写c程序系统调用rename,证实确实是这个问题. 日志打在容器里,日志 ...

  5. Linux quota磁盘配额

    quota:磁盘配额 限制某一群组所能使用的最大磁盘配额 限制某一用户的最大磁盘配额 使用限制: 仅能针对整个filesystem 核心必须支持quota quota的记录文件 只对一般身份使用者有效 ...

  6. Linux学习笔记——举例说,makefile 多个文件

    0.前言     从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile,假设自己动手写一个makefile总认为非常吃力. 所以特意 ...

  7. Linux学习笔记——举例说,makefile 添加宏定义

    0.前言     从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile.假设自己动手写一个makefile总认为非常吃力. 所以特意 ...

  8. Linux curl命令参数详解

    笔者出处:http://www.aiezu.com/system/linux/linux_curl_syntax.html linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支 ...

  9. 系统调用服务号 linux 2.6.32

    http://www.cnblogs.com/xcywt/p/4998963.html 系统定义符号集中声明在 /usr/src/kernels/linux-2.6.32/include/linux/ ...

随机推荐

  1. Android启动Activity

    Android和java启动的区别 不同于使用 main() 方法启动应用的其他编程范例,Android 系统会通过调用对应于其生命周期中特定阶段的特定回调方法在 Activity 实例中启动代码.有 ...

  2. Request和Response的格式

    Request和Response的格式 Request格式: HTTP请求行  (请求)头  空行  可选的消息体 注:请求行和标题必须以<CR><LF> 作为结尾(也就是,回 ...

  3. 安卓Toast自定义及防止重复显示

    Toast是安卓系统中,用户误操作时或某功能执行完毕时,对用户的一种提示,它没有焦点,并在一定时间内会消失,但用户连续误操作(如登录时,密码错误)多次时,则会有多个Toast被创建,系统会把这些toa ...

  4. java.util.ServiceLoader使用

    近期在项目中需要实现能在配置文件中定义多个统一接口类型的类,可以在程序中获取到所有配置的类,刚开始打算配置到properties中,然后去程序读取,感觉这种方式不太灵活,于是,研究研究java中有没有 ...

  5. How to Find the Self Service Related File Location and Versions

     How to Find the Self Service Related File Location and Versions (文档 ID 781385.1) In this Document ...

  6. python中MySQLdb的使用

    先举一例: 一个 Python代码实例: # -*- coding: utf-8 -*-      #mysqldb     import time, MySQLdb         #连接     ...

  7. JavaScript 关键字

    JavaScript 关键字 和其他任何编程语言一样,JavaScript 保留了一些关键字为自己所用. JavaScript 同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在以后 ...

  8. Eclpse 标准版,在联想一体机上报 eclipse failed to create the java virtual machine

    环境:联想一体机 IdearCentre B320I, XP系统  32位操作系统 下载了最新的JDK和Eclipse标准版,安装之后,启动eclipse报错 这个错误,以前还真没有遇到过,网上搜了下 ...

  9. Unity StrangeIoC HelloWorld

    unity有一个叫StrangeIoC的框架插件,这里写了一个使用StrangeIoC的HelloWorld,比他自带的demo更为简单,方便理解 1.插件下载,在Asset Store直接搜索Str ...

  10. 数据从oracle转换到mysql

    因为项目变更,需要把数据从oracle里转到mysql里. 第一个想法,自己写代码. 20分钟后,算了,还是找找工具吧. 第二步: 下了一个工具,二十分钟后,师兄发现,表的结构是倒完了,但是有的表数据 ...