服务器硬盘整理
周末进行了2天的服务器硬盘整理。
原来的主力硬盘由于使用过度,频繁出现错误。
现在的作法是:读写最频繁的/home分区改由5个硬盘近10个分区来承担,
并将热数据与冷数据合理分布在各硬盘。
并将原来的2个73G的主分区,格式化, 再细化成若干分区。
主要方法:利用linux文件系统的link可能,将/home分区的数据移动到5个硬盘的多个分区内。
主要工具:lk.c,方便建立链接。
用法示例:
cd /home
mv /home/w* /users/w
./lk /users/w /users/w/
这就将/home内以w打头的上百个文件夹移动到/users/w内,以lk自动建立链接,好像数据仍然在/home内。
//lk.c
// added on 2004-08-21
// make links automatically
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
main(int argc, char *argv[])
{
DIR *dir;
struct dirent *ptr;
char rlpath[80];
char baseDir[80];
char realPath[200];
int i;
int ln;
if(argc < 3)
{
printf("Too few parms.\n");
return;
}
strcpy(baseDir,argv[2]);
dir = opendir(argv[1]);
while( (ptr = readdir(dir)) != NULL)
{
if(strcmp(ptr->d_name,".") == 0) continue;
if(strcmp(ptr->d_name,"..") == 0) continue;
if(ptr->d_type == 8) continue;
printf("%s\t",ptr->d_name);
strcpy(realPath,baseDir);
strcat(realPath,ptr->d_name);
// realpath(ptr->d_name,rlpath);
printf("%s \t", realPath);
ln = symlink(realPath,ptr->d_name);
if(ln == 0) printf("ok.\n");
}
closedir(dir);
}
原来的主力硬盘由于使用过度,频繁出现错误。
现在的作法是:读写最频繁的/home分区改由5个硬盘近10个分区来承担,
并将热数据与冷数据合理分布在各硬盘。
并将原来的2个73G的主分区,格式化, 再细化成若干分区。
主要方法:利用linux文件系统的link可能,将/home分区的数据移动到5个硬盘的多个分区内。
主要工具:lk.c,方便建立链接。
用法示例:
cd /home
mv /home/w* /users/w
./lk /users/w /users/w/
这就将/home内以w打头的上百个文件夹移动到/users/w内,以lk自动建立链接,好像数据仍然在/home内。
//lk.c
// added on 2004-08-21
// make links automatically
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
main(int argc, char *argv[])
{
DIR *dir;
struct dirent *ptr;
char rlpath[80];
char baseDir[80];
char realPath[200];
int i;
int ln;
if(argc < 3)
{
printf("Too few parms.\n");
return;
}
strcpy(baseDir,argv[2]);
dir = opendir(argv[1]);
while( (ptr = readdir(dir)) != NULL)
{
if(strcmp(ptr->d_name,".") == 0) continue;
if(strcmp(ptr->d_name,"..") == 0) continue;
if(ptr->d_type == 8) continue;
printf("%s\t",ptr->d_name);
strcpy(realPath,baseDir);
strcat(realPath,ptr->d_name);
// realpath(ptr->d_name,rlpath);
printf("%s \t", realPath);
ln = symlink(realPath,ptr->d_name);
if(ln == 0) printf("ok.\n");
}
closedir(dir);
}
hofman
2004-11-22 00:37:05
评论:0
阅读:1849
引用:0
