2019-07-12 09:07:42 TSZ0000 阅读数 114
  • Linux应用软件服务篇-五剑客

    第一章节讲解主流的 Vsftp服务器如何通过服务端与客户端实现文件资源共享,讲解了Vsftp之间三种用户在不同的配置方法对不同的目录文件资源限制访问,达到更安全高效的资源共享数据传输。 第二章节讲解企业级NTP时间服务器对公司内网所有客户机及服务器批量实现时间同步,多个节点如何去快速同步主服务器时间。  第三章节讲解 NFS服务器实现与客户机磁盘文件的共享,通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,重点讲解了通过客户端远程挂载服务器磁盘共享文件及如何使用指定用户去访问指定的共享文件夹数据。 第四章节讲解samba服务器在企业中,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源,重点介绍了通过 samba配置文件权限配置去对匿名文件夹及指定用户文件夹共享资源服务。 第五章节介绍了去部署 DHCP服务器对批量客户端实现自动获取IP,通过配置文件IP池获取到IP形式,及绑定客户端Mac地址及指定IP给予客户端,从而获得IP方法。

    147 人正在学习 去看看 吴光科

需求:usb和hub上面的2个设备需要固定的挂载到某个目录下,这个位置不能因为某个设备没有插入而改变。

分析

在开机启动加载USB驱动,扫描usb总线顺序时,就检测并确定bus上面是否有设备,并把设备节点信息记录下来。

代码

dmesg_sd_check_dev(){
	#check back usb:1-1:1.0
	scsi_num=$(dmesg | grep ": usb-storage 1-1:1.0" | awk '{print $1}' | sed 's/^scsi\([0-9]*\)/\1/')
	echo "back num = $scsi_num"
	#check back device
	ret=$(dmesg | grep "sd $scsi_num:0:0:0:" | grep "logical blocks" | sed 's/.*\[\(.*\)\].*/\1/')
	echo "back device = $ret"
	[ -n "$ret" ] && {
		device_back=$ret
		ret=$(dmesg | grep " $ret:" | awk '{print $2}')
		echo "back device num = $ret"
		[ -n "$ret" ] && {
			device_back_num=$ret
			echo "back device num = $device_back_num"
		}
	}

	#check SD-card sda usb:1-2.2:1.0
	scsi_num=$(dmesg | grep ": usb-storage 1-2.2:1.0" | awk '{print $1}' | sed 's/^scsi\([0-9]*\)/\1/')
	echo "sda num = $scsi_num"
	#check sda device
	ret=$(dmesg | grep "sd $scsi_num:0:0:0" | grep "logical blocks" | sed 's/.*\[\(.*\)\].*/\1/')
	echo "sda device = $ret"
	[ -n "$ret" ] && {
		device_sda=$ret
		ret=$(dmesg | grep " $ret:" | awk '{print $2}')
		echo "sda device num = $ret"
		[ -n "$ret" ] && {
			device_sda_num=$ret
			echo "sda device num = $device_sda_num"
		}
	}

	#check SD-card sdb usb:1-2.3:1.0
	scsi_num=$(dmesg | grep ": usb-storage 1-2.3:1.0" | awk '{print $1}' | sed 's/^scsi\([0-9]*\)/\1/')
	echo "sdb num = $scsi_num"
	#check sdb device
	ret=$(dmesg | grep "sd $scsi_num:0:0:0" | grep "logical blocks" | sed 's/.*\[\(.*\)\].*/\1/')
	echo "sdb device = $ret"
	[ -n "$ret" ] && {
		device_sdb=$ret
		ret=$(dmesg | grep " $ret:" | awk '{print $2}')
		echo "sdb device num = $ret"
		[ -n "$ret" ] && {
			device_sdb_num=$ret
			echo "sdb device num = $device_sdb_num"
		}
	}
}

上面的信息来源于Linux USB设备加载识别探索, 这样就能固定的挂载设备到固定的目录下。

 

2016-08-04 12:13:21 zhuyunfei 阅读数 279
  • Linux应用软件服务篇-五剑客

    第一章节讲解主流的 Vsftp服务器如何通过服务端与客户端实现文件资源共享,讲解了Vsftp之间三种用户在不同的配置方法对不同的目录文件资源限制访问,达到更安全高效的资源共享数据传输。 第二章节讲解企业级NTP时间服务器对公司内网所有客户机及服务器批量实现时间同步,多个节点如何去快速同步主服务器时间。  第三章节讲解 NFS服务器实现与客户机磁盘文件的共享,通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,重点讲解了通过客户端远程挂载服务器磁盘共享文件及如何使用指定用户去访问指定的共享文件夹数据。 第四章节讲解samba服务器在企业中,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源,重点介绍了通过 samba配置文件权限配置去对匿名文件夹及指定用户文件夹共享资源服务。 第五章节介绍了去部署 DHCP服务器对批量客户端实现自动获取IP,通过配置文件IP池获取到IP形式,及绑定客户端Mac地址及指定IP给予客户端,从而获得IP方法。

    147 人正在学习 去看看 吴光科

1.确保usb的格式为fat格式

2.建立一个挂载U盘的目录
cd mnt
mkdir usb

3.fdisk -l /dev/sd* 查看U盘的分区表信息

4.执行挂载
mount -t vfat /dev/sda1 /mnt/usb

注意:这里的sda1是可变的,根据3中命令查询而得知,也有可能是sdb或其他。

5.访问U盘
cd /mnt/usb

6.卸载U盘
umount /dev/sda1

2017-07-28 11:42:53 u010445516 阅读数 313
  • Linux应用软件服务篇-五剑客

    第一章节讲解主流的 Vsftp服务器如何通过服务端与客户端实现文件资源共享,讲解了Vsftp之间三种用户在不同的配置方法对不同的目录文件资源限制访问,达到更安全高效的资源共享数据传输。 第二章节讲解企业级NTP时间服务器对公司内网所有客户机及服务器批量实现时间同步,多个节点如何去快速同步主服务器时间。  第三章节讲解 NFS服务器实现与客户机磁盘文件的共享,通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,重点讲解了通过客户端远程挂载服务器磁盘共享文件及如何使用指定用户去访问指定的共享文件夹数据。 第四章节讲解samba服务器在企业中,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源,重点介绍了通过 samba配置文件权限配置去对匿名文件夹及指定用户文件夹共享资源服务。 第五章节介绍了去部署 DHCP服务器对批量客户端实现自动获取IP,通过配置文件IP池获取到IP形式,及绑定客户端Mac地址及指定IP给予客户端,从而获得IP方法。

    147 人正在学习 去看看 吴光科

在这个板块里面我想时不时分享一些小工具类代码,希望能帮助到需要的人。

测试环境是在CentOS7,之前做一个项目里面涉及到监控USB的所以活动,所以需要去获取usb挂载后所有的子目录路径,于是就有了下面的代码:大笑


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/* 
 * File:   newmain.cpp
 * Author: Jerry
 *
 * Created on 2017年6月5日, 下午5:42
 */

#include <cstdlib>

using namespace std;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>
#include <string>
#include <set>
static set<string> strDir;

using namespace std;
static int incount = 0;

void printdir(char *dir, int depth, char* path, char* tempin) 
{
    DIR *dp;
    struct dirent *entry;
    struct stat statbuf;

    if ((dp = opendir(dir)) == NULL) 
    {
        fprintf(stderr, "cannot open directory: %s\n", dir);
        return;
    }

    chdir(dir);
    strDir.insert(path);
    while ((entry = readdir(dp)) != NULL) 
    {
        lstat(entry->d_name, &statbuf);
        
        if (S_ISDIR(statbuf.st_mode)) 
        {
            static char temp[256] = {};
            /* Found a directory, but ignore . and .. */
            if (strcmp(".", entry->d_name) == 0 || strcmp("..", entry->d_name) == 0) 
            {
                continue;
            }
            
            printf("------>  %d\n", depth);  
            printf("%*s%s/\n", depth, "", entry->d_name);    //    1-1/
            
            if(depth == 0)
            {
                sprintf(temp, "%s/%s", path, entry->d_name);
                strDir.insert(temp);
                printf("temp  == %s\n",  temp);
            }
            else
            {                
                sprintf(temp, "%s/%s", tempin, entry->d_name);  // /media/usbtest/1/1-1-1/
                strDir.insert(temp);
            }

            /* Recurse at a new indent level */
            printdir(entry->d_name, depth + 4, path, temp);
            incount++;
        }
        //else printf("%*s%s\n",depth,"",entry->d_name);
    }

    chdir("..");
    closedir(dp);
}

/*  Now we move onto the main function.  */

int main(int argc, char* argv[]) 
{
    strDir.clear();
    char *topdir = "/media/usbtest";
    char *temp = "";

    printf("Directory scan of %s\n", topdir);
    printdir(topdir, 0, topdir, temp);
    
    printf("\n##########################################################\n\n");
    set<string>::iterator it = strDir.begin();
    for(; it != strDir.end(); it++)
    {
       printf("--------->>>>>>  %s\n", (*it).c_str());
	//printf("--------->>>>>>  6666 \n");
    }
    printf("done.\n");

    return 0;
}
运行后的结果:
/*  运行结果:




[root@localhost Dir]# ./a.out 
Directory scan of /media/usbtest
------>  0
1/
temp  == /media/usbtest/1
------>  4
    1-1/
------>  8
        1-1-1/
------>  0
2/
temp  == /media/usbtest/2
------>  4
    2-2/
------>  8
        2-2-2/
------>  0
3/
temp  == /media/usbtest/3
------>  4
    3-3/
------>  8
        3-3-3/
------>  0
System Volume Information/
temp  == /media/usbtest/System Volume Information
------>  0
.Trash-0/
temp  == /media/usbtest/.Trash-0
------>  4
    info/
------>  4
    files/


##########################################################


--------->>>>>>  /media/usbtest
--------->>>>>>  /media/usbtest/.Trash-0
--------->>>>>>  /media/usbtest/.Trash-0/info
--------->>>>>>  /media/usbtest/.Trash-0/info/files
--------->>>>>>  /media/usbtest/1
--------->>>>>>  /media/usbtest/1/1-1
--------->>>>>>  /media/usbtest/1/1-1/1-1-1
--------->>>>>>  /media/usbtest/2
--------->>>>>>  /media/usbtest/2/2-2
--------->>>>>>  /media/usbtest/2/2-2/2-2-2
--------->>>>>>  /media/usbtest/3
--------->>>>>>  /media/usbtest/3/3-3
--------->>>>>>  /media/usbtest/3/3-3/3-3-3
--------->>>>>>  /media/usbtest/System Volume Information
done.


觉得有用的可以自己测试,或者修改成你喜欢的!

2018-04-11 22:39:01 shipaiYang 阅读数 388
  • Linux应用软件服务篇-五剑客

    第一章节讲解主流的 Vsftp服务器如何通过服务端与客户端实现文件资源共享,讲解了Vsftp之间三种用户在不同的配置方法对不同的目录文件资源限制访问,达到更安全高效的资源共享数据传输。 第二章节讲解企业级NTP时间服务器对公司内网所有客户机及服务器批量实现时间同步,多个节点如何去快速同步主服务器时间。  第三章节讲解 NFS服务器实现与客户机磁盘文件的共享,通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,重点讲解了通过客户端远程挂载服务器磁盘共享文件及如何使用指定用户去访问指定的共享文件夹数据。 第四章节讲解samba服务器在企业中,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源,重点介绍了通过 samba配置文件权限配置去对匿名文件夹及指定用户文件夹共享资源服务。 第五章节介绍了去部署 DHCP服务器对批量客户端实现自动获取IP,通过配置文件IP池获取到IP形式,及绑定客户端Mac地址及指定IP给予客户端,从而获得IP方法。

    147 人正在学习 去看看 吴光科

查看可挂载设备:fdisk -l

/dev/sda1

创建挂载点:mkdir /mnt/user01

修改/etc/fstab

加上


需要挂载的设备 挂载点 文件系统 挂载选项 dump\fsck相关选项


/dev/sda1 /mnt/usb01 vfat defaults 0 0
2010-04-24 14:00:00 sphone89 阅读数 5124
  • Linux应用软件服务篇-五剑客

    第一章节讲解主流的 Vsftp服务器如何通过服务端与客户端实现文件资源共享,讲解了Vsftp之间三种用户在不同的配置方法对不同的目录文件资源限制访问,达到更安全高效的资源共享数据传输。 第二章节讲解企业级NTP时间服务器对公司内网所有客户机及服务器批量实现时间同步,多个节点如何去快速同步主服务器时间。  第三章节讲解 NFS服务器实现与客户机磁盘文件的共享,通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,重点讲解了通过客户端远程挂载服务器磁盘共享文件及如何使用指定用户去访问指定的共享文件夹数据。 第四章节讲解samba服务器在企业中,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源,重点介绍了通过 samba配置文件权限配置去对匿名文件夹及指定用户文件夹共享资源服务。 第五章节介绍了去部署 DHCP服务器对批量客户端实现自动获取IP,通过配置文件IP池获取到IP形式,及绑定客户端Mac地址及指定IP给予客户端,从而获得IP方法。

    147 人正在学习 去看看 吴光科

一早上都是弄在LINUX下挂载usb,很无语,几乎找遍了所有网上人家介绍的方法,可对于一个新手来说,他们大都讲的不清楚不楚,最后还是觉得这个比较方法比较成功,所以贴出来大家分享,说不定以后还能用得到

 

1.USB移动存储设备通常被识别为sda1,具体可以通过fdisk -l命令查询。一般外挂点的子目录都是建立在/mnt里面的 使用mkdir /mnt/usb 建立一个挂载点,然后mount /dev/sda1 /mnt/usb 进行挂载

2.1. 先别插U盘,/sbin/lsmod看是否有usb-storage。如果没有的话:
cd /lib/modules/2.4.20-8/kernel/drivers/usb
           for v in *.o storage/*.o ;

                   do /sbin/insmod $v ; done

    2. 这里再/sbin/lsmod,应该有usbcore、usb-ohci(或usb-uhci,根据主板芯片组而不同)、usb-storage、scsi_mod等。其   中     usb-storage的状态应该为 (unused)。
3. 插入U盘,不停的/sbin/lsmod,这期间usb-storage的状态应为Initializing,持续时间大约半分钟,其实就相当于Windows在右下角不停的弹汽球:)
4. 初始化结束后, /sbin/fdisk -l,应该能看到/dev/sda1设备。这时,执行mount /dev/sda1 /mnt/udisk 才能成功。如果是MSDOS格式,又想看到中文,可以 mount -t vfat /dev/sda1 /mnt/udisk -o iocharset=gb2312。
(为方便可以/etc/fstab加一行,以后就可以 mount /mnt/udisk就行了)。

Linux下挂载usb设备

阅读数 290

没有更多推荐了,返回首页