今天来到公司,有小伙子告诉我,服务器好像当掉了,出错。 

连接上了服务器,检查一下。磁盘空间不够了 
[java@localhost ~]$ df -lh 
Filesystem Size Used Avail Use% Mounted on 
/dev/hda2 5.8G 5.8G 0M 100% / 
/dev/hda1 99M 8.5M 86M 10% /boot 
none 506M 0 506M 0% /dev/shm 
/dev/hda6 20G 77M 19G 1% /tmp 
/dev/hda5 20G 14G 5.2G 72% /usr/local 
/dev/hda3 29G 3.3G 25G 13% /var 
这个是我们的应用服务器,上面有php和tomcat以及apache的服务器还有Oracle的一个数据库。 

以前的SA规划的不好,分区做的话好,这里的hda3,had5, hda6还有很多的空间,最简单的方法就是转移文件和目录,然后在原来的地方建立link指到新的地址就可以了 

关闭相关的几个服务 
使用 
mv 原地址 空余空间的地址 
ln -s 空余空间的目录地址 原地址目录 

几行命令就搞定了。 

重启各个服务,一切又恢复正常状况了。

 

下面是网友朋友后续提供的有关ln命令的详细用法

 

特此加固记忆一下

1 : 使用cd命令定为主目录 


  cd 

2 : 用touch创建名字为aa的文件 

 

touch aa 
3 : 运行 ls -l命令查询刚才看到的文件 

  ls -l 
  显示如下: 
  -rw-r--rr-- 1 user usergroup 0 otc 22 10 : 20 aa 

 

4: 使用ln命令创建一个硬链接,该链接命名为bb: 

 

ln aa bb 

5:使用ln -s 命令来为aa创建一个软链接,称为cc: 

  ln -s aa cc 

6:使用echo 命令和输出重定向给aa中添加"Yes". 

  echo "Yes" >>aa 

7:分别运行cat aa和ls -l来观察这3个文件的变化. 

工作原理:这些链接都引用相同的文件,但是他们在系统上出现的方式不同。软链接和硬链接都指向同一个文件,并且编辑他们都将修改原文件的内容。软链接和硬链接的区别是:在删除文件时,他们的处理方式不同;当链接和所链接的文件位于不同文件的系统上时,他们的使用方式不同

 

后来觉得软连接和硬连接没有讲清楚,自己特地加上了个人的看法

如下

这个软连接和硬连接是ln里最主要的概念了 

软连接 ln命令要加-s 
硬连接 不加 s 

几个硬连接=几个拷贝, 所以源文件被删除后,还有几个备份。 
几个软连接=几个指向源文件的路标, 所以源文件被删除后,虽然有路标但房子已经不在了,你再也拿不到东西了。 

以上可以看到软连接是逻辑链接,是记录的target的路径,和window里的shortcut的功能是一样的,所以当我们删除了原来的文件或者目录,这个link就无效了。软连接的inode和原文件的完全不同,也就是另外一个文件。 可以用ls -i看看 

而硬连接是实实在在的目标节点,和clone一样,inode号都是一致的。当删除原文件时,硬链接文件仍然存在有效,他是记载了inode的。这个好像是copy,但是和copy不同的是,copy是完全脱离了关系,但是硬连接还保持着关系,也就是说改动一个,另一个的内容也会一致性的改动,这里有点指针的样子。 

所以硬连接不容许跨文件系统,而且硬连接一定要是一个存在的文件,这样才有inode呀,而且硬连接不能作用目录,软连接是基于path的处理更简单,而硬连接可能处理的更多。

 

 



 

 

Logo

更多推荐