linux
分页: 1/20 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]
umount如果提示设备忙,可以用 umount -l
会立刻卸载了,但是只是df上看不到,设备还是在占用,但此时你可以挂载新设备上来了
新文件读写应该都可以在新设备,要使用旧设备,可以用fuser找到占用的进程,kill掉就可以了

引用
当Umount一个目录时,提示device is busy,umount加参数f,是强制执行umount,但是许多时候均不会成功。
原理上要想umount,首先要kill正在使用这个目录的进程。*假设无法卸载的设备为/dev/sdb1
1)运行下面命令看一下哪个用户哪个进程占用着此设备
fuser -m -v /dev/sdb1

2)运行下面命令杀掉占用此设备的进程
fuser -m -v -k /dev/sdb1
或者fuser -m -v -k -i  /dev/sdb1(每杀掉一下进程会让你确认)
3)再umount

*杀掉所有以任何形式访问文件系统 /dev/sdb1的进程:
$fuser -km /dev/sdb1
这个办法是一个比较粗鲁的办法,通常适用于在测试等非正式环境。比较正规的要配合ps等命令,查出使用的用户、进程、命令等,然后做出综合判断,必要时先通知(signal或口头等)用户,确认安全时才可以强制kill此进程。
但有时fuser执行时,仍然会有报错,其实umount强制退出,可以考虑用参数l(Lazy),这个参数是比f(Force)更强大的终极命令。
Man Umount 查看f和l的参数说明如下:
-f     Force  unmount.  This  allows  an  NFS-mounted  filesystem  to be unmounted if the NFS server is unreachable. Note: when using umount -f on an NFS filesystem, the
              filesystem must be mounted using either the soft, or intr options (see nfs(5).  This option  will  not  force  unmount  a  busy  filesystem  (use  -l
  instead).
              (Requires kernel 2.1.116 or later.)

       -l     Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore. This option
              allows a busy filesystem to be unmounted.  (Requires kernel 2.4.11 or later.)
本次操作过程如下:
[root@FUHOST /]# umount /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
umount: /home/swebapp/apache-tomcat-5.5.17/webapps/upload: device is busy
umount: /home/swebapp/apache-tomcat-5.5.17/webapps/upload: device is busy

[root@FJ-WEB-02 sbin]# umount -f /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
umount2: 设备或资源忙
umount: /home/swebapp/apache-tomcat-5.5.17/webapps/upload: device is busy
umount2: 设备或资源忙
umount: /home/swebapp/apache-tomcat-5.5.17/webapps/upload: device is busy

[root@FJ-WEB-02 sbin]# fuser -km  /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
/home/swebapp/apache-tomcat-5.5.17/webapps/upload/: 输入/输出错误

[root@FJ-WEB-02 sbin]# fuser -um  /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
/home/swebapp/apache-tomcat-5.5.17/webapps/upload/: 输入/输出错误

[root@FJ-WEB-02 upload]# umount -l /home/swebapp/apache-tomcat-5.5.17/webapps/upload/


参考阅读
1 强制Umount NFS终极手法 http://tonnyxs.blog.163.com/blog/static/27937985201102202028695/
2 linux 下强制umount+Fuser命令详解 http://yangzhongfei.blog.163.com/blog/static/4610987520102311081367/
[转] 事情是这个样儿的,折腾了好几天就是搞不明白为啥设置了.ssh目录,在authorized_keys设置了key后登录还提示需要输入密码。捞干的,说怎么解决吧,注意权限,.ssh权限700,authorized_keys权限600,就OK啦!~~~~

chmod 700 ~/.ssh/
chmod 700 ~
chmod 600 ~/.ssh/authorized_keys


---------------------

一直很困惑要求输入密码,原来是不知道哪个操蛋的把root文件夹改777

drwxrwxrwx  11 root    root     4096 Nov 10 22:52 root

另外一个机器被改归属人,操蛋的

drwx------   7 mysql mysql 36864 10-26 15:03 root

参考:http://my.oschina.net/shootercn/blog/15418
Tags:
SAS硬盘可以热插拔,插入硬盘后,磁盘会立刻显示在fdisk -l 的列表里,可以立刻开始使用。
SCSI硬盘还没这么便捷,但也是可以做到不重启就加入使用的。

这里关系最大的是 /proc/scsi/scsi 文件
在linux系统里, /proc 的内容是系统运行状态等信息
修改它会导致立刻生效,比如支持包转发

目前服务器在用的硬盘有两个,分别插在0和1的插槽
加入的四个硬盘分别插到3-5的插槽
IBM的机器硬盘盒的螺丝凸起的,安装到DELL的硬盘盒里,有点凸起
插入机器里会有点紧,但可以正常使用

我们先看看 /proc/scsi/scsi的文件
[root@aslibra.com ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: SEAGATE  Model: ST3146707LC      Rev: D703
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: SEAGATE  Model: ST3146707LC      Rev: D703
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: PE/PV    Model: 1x6 SCSI BP      Rev: 1.0
  Type:   Processor                        ANSI SCSI revision: 02


操作方法:
引用
我们以root权限执行 echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi  添加scsi设备

解释一下 scsi add-single-device a b c d 这个指令中的参数:                        
# 相反  scsi remove-single-device a b c d 是用来移除设备的

a ------- Host 是硬盘所在的SCSI控制器的编号,这里只有一个控制器,所以为0
b ------- Channel 硬盘所在SCSI通道的编号,这里是单通道,为0
c ------- Id 硬盘的SCSI ID号,就是插入的硬盘插槽编号,
d ------- Lun ,硬盘的lun号[logical unit number]即逻辑单元号,指的是一个用于SCSI总线的唯一的识别号,
          总线使它能区别其他八个设备(它们每个都是一个逻辑单元)。


比较一下上面的内容和scsi文件的内容,我们可以知道,添加第三个插槽的硬盘是这么操作的:
[root@aslibra.com ~]# echo "scsi add-single-device 0 0 2 0" > /proc/scsi/scsi
[root@aslibra.com ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: SEAGATE  Model: ST3146707LC      Rev: D703
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: SEAGATE  Model: ST3146707LC      Rev: D703
  Type:   Direct-Access                    ANSI SCSI revision: 03
Host: scsi0 Channel: 00 Id: 06 Lun: 00
  Vendor: PE/PV    Model: 1x6 SCSI BP      Rev: 1.0
  Type:   Processor                        ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
  Vendor: IBM-ESXS Model: MAP3147NC     FN Rev: C101
  Type:   Direct-Access                    ANSI SCSI revision: 03


ifdisk -l 也可以看到此硬盘了,说明已经可以使用了
把 0 0 2 0换成0 0 3 0可以如此类似的增加余下的scsi硬盘,操作完毕!
Tags: ,
先温习一下替换文件里的字符的功课:

[root@aslibra ~]# ll *.html
-rw-r--r-- 1 root root 22 Aug 21 00:50 a.html
-rw-r--r-- 1 root root 32 Aug 21 00:51 index.html
[root@aslibra ~]# find . -name "*.html" | xargs sed -i 's/192/9999/'
[root@aslibra ~]# cat *.html
sdfjsldjf
9999
sdfdfdf
sldkjflsdjf
ksdjfsjd 9999
sdfsdf
[root@aslibra ~]# find . -name "*.html" | xargs sed -i 's/9999/+++++/'
[root@aslibra ~]# cat *.html
sdfjsldjf
+++++
sdfdfdf
sldkjflsdjf
ksdjfsjd +++++
sdfsdf


上面代码在linux下正常,可在mac下不正常了:

localhost:tmp hqlulu$ find . -name "*.html" | xargs sed -i 's/9999/+++++/'
sed: 1: "./a.html": invalid command code .


sed方式有点不一样,需要用 sed -iE ,当然,我们可以找到别的方式,比如perl(搜得):

perl -pi -e 's/9999/+++++/g'

下面我们看看怎么修改svn库的地址~
svn的组织方式是在目录下有.svn的目录,里面有一个entries文件,记录了svn的地址
windows下的乌龟提供了relocation功能,mac下的svn工具暂时没有发现
不过没关系,这个事情很简单

比如你的svn服务器调整了,从192.168.1.1更换为 svn.aslibra.com 里
我们先确认一下是否存在

find . -name entries | xargs grep 192.168.1.1
#你会得到类似内容:
./.svn/entries:svn://lhq@192.168.1.1/server


我们运行如下命令修改:

find . -name entries | xargs perl -pi -e 's/192.168.1.1/svn.aslibra.com/g'


OK~
Tags: , , , ,
一些文件操作如果需要和web服务器通信,是可以考虑用curl的。
正常的POST表单:

curl -d "user=nickwolfe&password=test" http://www.aslibra.com/?test.php


上传文件:

localhost:aslibra$ curl -F upload=@/Media/test.txt http://www.aslibra.com/?test/upload
Array
(
    [upload] => Array
        (
            [name] => test.txt
            [type] => text/plain
            [tmp_name] => /tmp/phpKDS0MR
            [error] => 0
            [size] => 335
        )
)


简单的php处理代码:

print_r($_FILES);
if(isset($_FILES['upload'])){
  @copy( $_FILES['upload']['tmp_name'], '/tmp/upload_'.$_FILES['upload']['name'] );
  @unlink( $_FILES['upload']['tmp_name'] );    
}

Tags: , ,
假设我们在client.aslibra.com的机器要实现免输入密码登录到server.aslibra.com
那要做什么事情呢?

1 client生成密钥
2 client把公钥上传到server
3 server把公钥加入到自己的authorized_keys文件即可

修改@0508:
谢谢profans的提示,2和3一步就可以完成啦!实验过,正常。
#生成密钥后
ssh-copy-id -i .ssh/id_rsa.pub server.aslibra.com


MAC: ssh-copy-id in Mac OS X
For some reason Macs don’t have this useful script so this will add it.
sudo curl "http://phildawson.co.uk/ssh-copy-id" -o /usr/bin/ssh-copy-id
sudo chmod +x /usr/bin/ssh-copy-id


Tags: , , ,
ssh账号代理上网是很常见的,尤其是翻越障碍物的时候很实用。
ssh账号是可以登录linux系统的,如果只是上网用,那就需要最小化权限,有两个方式:

1 /bin/false

useradd -s /bin/false yourUser

#登录时使用这样的:
ssh -D 7070 -N yourUser@hostname


2 自定义脚本

cat /bin/tunnel.sh
#!/bin/sh

echo "##########"
echo " welcome !"
echo "##########"

read x
exit

useradd -s /bin/tunnel.sh yourUser

ssh -D 7070 yourUser@hostname


输入字符后会退出,不会产生系统操作
Tags: , ,
分页: 1/20 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐