脚本内容:

state="$1"

case "$state" in
'start')
echo 'Starting install mr ramdisk' > /root/ramdisk.log
zpool destroy ramrpool >> /root/ramdisk.log
ramdiskadm -a mrramdisk 46g >> /root/ramdisk.log
rm -rf /export/home/omcrftp/mrdata/mrfile >> /root/ramdisk.log
zpool create -m /export/home/omcrftp/mrdata/mrfile ramrpool /dev/ramdisk/mrramdisk >> /root/ramdisk.log
chown -R omcrftp:omcg /export/home/omcrftp/mrdata >> /root/ramdisk.log
chmod -R /export/home/omcrftp/mrdata >> /root/ramdisk.log
;; 'stop')
echo 'Stopping process accounting' ;; *)
echo "Usage: $0 { start | stop }"
exit
;;
esac
exit

脚本放在/etc/init.d,再通过硬连接,在/etc/rc3.d建立对硬链接:

root@lnltedmr-tds:/etc/rc3.d# ls -il
total 15
98580 -rw-r--r-- 1 root sys 1233 Aug 17 2018 README
103659 -rwxr-x--- 2 root root 821 May 22 01:18 S16settcp
102690 -rwxr-x--- 2 root sys 1126 May 21 08:50 S33installramdisk
102689 -rwxr-x--- 2 root sys 736 May 16 17:52 S66runmr

命令:ln /etc/init.d/installramdisk /etc/rc3.d/S33installramdisk

硬链接不是简单复制,而是指向同一数据区域的两个指针,

软连接如硬链接稳定。

理解 Linux 的硬链接与软链接

https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html

为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名(见 图 2.hard link 就是 file 的一个别名,他们有共同的 inode)。硬链接可由命令 link 或 ln 创建。如下是对文件 oldfile 创建硬链接。

1
2
link oldfile newfile
ln oldfile newfile

由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块(见 图 2.)。因此软链接的创建与使用没有类似硬链接的诸多限制:

  • 软链接有自己的文件属性及权限等;
  • 可对不存在的文件或目录创建软链接;
  • 软链接可交叉文件系统;
  • 软链接可对文件或目录创建;
  • 创建软链接时,链接计数 i_nlink 不会增加;
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
图 2. 软链接的访问

Solaris软链接和硬链接及ls常用参数解释

2007年07月26日 13:42:00 dingyilong 阅读数 5966
 
笔者最近正在学习Solaris。其实也是菜鸟一个,计划几个月之后考SCSA的认证。所以把一些学习心得贴上来,共同研究。可能有些东西确实太小儿科,见谅。

在学习Solaris的目录继承结构的时候,很多东西大家都知道了,每个目录什么功能,就不细说了。通过阅读,发现了一个以前没有注意到的问题:软链接和硬链接的问题。

链接即link,在Unix和Linux系统中用ln命令,软链接需要加参数 -s。
 
在说软硬链接之前需要提到的是文件的存储方式,在Solaris中,文件的存储方式是由Inode和Data Blocks组成(包括目录,在Unix系统中,一切皆文件)。Inode是一个标号,每一个Inode标号对应一个Data Blocks。每一个文件其实就是与Inode标号相关联,从而获得数据的内容。下面就简单表示了一下file1的关联模式。file1对应的Inode为3561,其内容就为相对应的Data Blocks中存储的内容。
file1
——————
|Inode 3561|
——————
|                      |
|Data Blocks|
|                      |
——————

软链接其实就像一个指针,例如本地的文件名为Link1,对应的Inode是1228,其Data Bloacks中存储的内容就是一个指向另一个文件的指针。例如指向另一个文件为file1,Inode是3561。

软链接命令为:ln -s pathname target。
例如实现上例命令为:ln -s link1 file1

硬链接与软链接有比较大的不同。硬链接是指两个文件都指向同一个Inode。所以如果软链接把link删掉的话,原文件file是不会受到影响的,但是如果原文件file删掉了,链接link就会失效,因为找不到target了。而硬链接由于两个文件都能找到Inode,所以删掉其中的一个对于另一个没有任何影响。

Inode是整个文件系统中很关键的部分,它就像一个指针一样。换句话说,Inode就是一个入口。
我们在用ls命令查看目录结构的时候,如果使用-l参数就会看到很多详细信息,例如:
#ls -l
total 2
drwxr-xr-x   77   root   sys               4096   Sep   23   08:36   dir
 -rwxr-xr-x    1    user  user            10000  Sep   23   19:11   file

前面是权限,应该都清楚,不细说。权限后面跟着的数字就是表示这个文件和目录有多少个硬链接。换句话说就是有多少个文件指向这个Inode。
我们加上参数-i可以看到Inode:
#ls -il dir
21449    drwxr-xr-x   77   root   sys               4096   Sep   23   08:36   dir

在权限前面的数字就是Inode了。

由此可知,一个文件最少有一个硬链接,而一个目录则至少有2个硬链接,一个是目录本身的入口,另一个是目录内部的 ".",是在目录内表示本目录的入口。所以在目录内每多一个目录,就会多一个硬链接,因为子目录的".." 表示的父目录的入口。大家可以尝试一下。

下面列出ls命令常用的参数及功能:
ls
-l       显示详细参数
-a      显示全部文件,包括隐含文件
-L      显示软链接的目标目录信息
-i       显示Inode
-R     显示包括继承的子目录的信息
-d      后面根目录名,只显示目录名称和信息,不显示目录内的信息。

 

solaris启动脚本S33installramdisk的更多相关文章

  1. solaris启动过程详解

    在Sparc平台下,Solaris系统中有一个类似PC BIOS的芯片程序(EEPROM OpenBoot)负责识别分区.文 件系统和加载内核,在Solaris 2.6之后的版本中,默认的内核文件存放 ...

  2. logstash服务启动脚本

    logstash服务启动脚本 最近在弄ELK,发现logstash没有sysv类型的服务启动脚本,于是按照网上一个老外提供的模板自己进行修改 #添加用户 useradd logstash -M -s ...

  3. 改进uwsgi启动脚本,使其支持多个独立配置文件

    最近在研究flask,在架设运行环境的时候犯了难.因为我想把每个独立的应用像NGINX处理多个网站那样,每个应用单独一个配置文件.而网上流传的uwsgi启动脚本都只支持单个配置文件.虽然有文章说可以把 ...

  4. linux nginx 启动脚本

    linux nginx 启动脚本 [root@webtest76 ~]# vi /etc/init.d/nginx #!/bin/bash # nginx Startup script for the ...

  5. busybox rootfs 启动脚本分析(二)

    上次分析了busybox的启动脚本,这次分析一下init.d中一些脚本的内容. 参考链接 http://www.cnblogs.com/helloworldtoyou/p/6169678.html h ...

  6. Tomcat启动脚本

    记录一个比较好的tomcat启动脚本,截取<OneinStack>,修改如下两个参数即可用. 使用之前修改下面2个参数: #Location of JAVA_HOME (bin files ...

  7. Linux Runlevel 启动 脚本

    Linux 操作系统自从开始启动至启动完毕需要经历几个不同的阶段,这几个阶段就叫做 Runlevel,同样,当Linux操作系统关闭时也要经历另外几个不同的 Runlevel,下面详细介绍一下 Run ...

  8. [Tomcat 源码分析系列] (二) : Tomcat 启动脚本-catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...

  9. [Tomcat 源码分析系列] (一) : Tomcat 启动脚本-startup.bat

    概述 我们通常使用 Tomcat 中的 startup.bat 来启动 Tomcat. 但是这其中干了一些什么事呢? 大家都知道一个 Java 程序需要启动的话, 肯定需要 main 方法, 那么这个 ...

随机推荐

  1. ubuntu安装dockers和images:dvwa

    docker安装 安装前需要更新系统 apt-get update apt-get upgrade apt-get install docker.io 安装完之后就可以试下: docker docke ...

  2. springboot后端实现条件查询,要配合使用mybatis

    package cn.com.dyg.work.sqlgen; import cn.com.dyg.work.common.exception.DefException; import cn.com. ...

  3. 【Lua程序设计第四版练习题答案】ch01 Lua语言入门

    联系1.1: 运行阶乘的示例并观察,如果输入负数,程序会出现什么问题?试着修改代码来解决问题.   -- 定义一个计算阶乘的函数 function fact (n) if n == 0 then re ...

  4. Spring Cloud Feign原理及性能

    什么是Feign? Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直 ...

  5. Laravel关联模型

    public $timestamps = false;//不存时间 1.多对多关联.如收藏.用户表users,产品表products,收藏中间表user_favorite_products.那么在用户 ...

  6. 从零开始,SpreadJS新人学习笔记【第4周】

    数据绑定.脏数据和单引号前缀 本周,让我们一起来学习SpreadJS 的数据绑定.脏数据和单引号前缀,希望我的学习笔记能够帮助你们,从零开始学习 SpreadJS,并逐步精通. 在此前的学习笔记中,相 ...

  7. SpringMVC基础教程

    1. 最简单的配置 首先是要有相应的配置文件: 文件内容: <context:component-scan base-package="com.imethsoft.server.*&q ...

  8. Linux-1.1root初始密码设置,切换root用户

    Ubuntu安装好后,root密码需要自己设置 root初始密码设置 sudo passwd root 权限不够时,切换root su 回车后输入密码 exit 退出登录的账户

  9. Spring Cloud Gateway真的有那么差吗?

    动机 已经不止一次看到"Spring Cloud Gateway性能比Zuul更差"的言论了,不少人人云亦云,来问我,既然如此,那Spring官方还开发Spring Cloud G ...

  10. Linux(16):Shell编程(3)

    vim 编程环境配置: .vimrc 文件配置如下:(.vimrc文件放到家目录下:/root :然后退出 xshell 再登陆进来xshell) set nocompatible set histo ...