ubuntu 12.04搭建tftp服务器 and nfs

server_args = -s //home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot -c


----->

server_args = -s /tftpboot

TFTP_DIRECTORY="/home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot"----->


TFTP_DIRECTORY="/tftpboot"

ubuntu 12.04搭建tftp服务器

  (2013-03-13 15:56:52)
  分类: Linux

第1步:

安装tftp所需的软件。首先需要安装tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,

在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpa和tftpd-hpa。

然后还需要安装xinetd,在终端下输入 sudo apt-getinstall xinetd,安装好xinetd

第2步:

配置相关服务文件。进入根目录下的etc文件夹(cd /etc/),首先看目录中有没有一个xinetd.conf文件,

如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下:

  1. # Simple configuration file for xinetd
  2. #
  3. # Some defaults, and include /etc/xinetd.d/
  4. defaults
  5. {
  6. # Please note that you need a log_type line to be able to use log_on_success
  7. # and log_on_failure. The default is the following :
  8. # log_type = SYSLOG daemon info
  9. }
  10. includedir /etc/xinetd.d
第3步:

然后进入xinetd.d文件夹(cd xinetd.d),查看是否有一个tftp文件,如果没有就新建一个,如果有的话

就查看内容是否与下面的一致,不一致则修改,内容如下:

  1. service tftp
  2. {
  3. disable = no
  4. socket_type = dgram
  5. protocol = udp
  6. wait = yes
  7. user = root
  8. server = /usr/sbin/in.tftpd
  9. server_args = -s //home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot -c
  10. source = 11
  11. cps = 100 2
  12. gs =IPv4
  13. }

其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的

第4步:

更改配置文件/etc/default/tftpd-hpa

sudo gedit /etc/default/tftpd-hpa

 

  1. # /etc/default/tftpd-hpa
  2. TFTP_USERNAME="tftp"
  3. TFTP_DIRECTORY="/home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot"
  4. TFTP_ADDRESS="0.0.0.0:69"
  5. TFTP_OPTIONS="--secure"

第5步:

修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文件夹,

以我的配置文件为例,我直接设置/home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot为服务器文件夹,然后把它可以设置成访问权(sudo chmod –R 777 /home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot),一定要设定,-R是递归把文件下所有文件都改掉。

第5步:

 

重新启动服务。这也是我经常疏忽的一步,当配置好tftp的配置文件后,需要重新启动一下xinetd,

在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程,再输入 sudo /etc/init.d/xinetd restart,sudo service tftpd-hpa restart

重启服务。记住,每次修改完配置文件后,都需要重新启动一下服务


重启电脑!

第6步:

主机测试

  1. root@Pillar:/home/pillar/WORK# tftp localhost
  2. tftp> get uImage
  3. tftp> q
  4. root@Pillar:/home/pillar/WORK# ls
  5. kernel u-boot uImage

开发板测试
  1. SMDK6410 # tftp c0008000 uImage
  2. Found DM9000 ID:90000a46 at address 18000300 !
  3. DM9000 work in 16 bus width
  4. bd->bi_entaddr: 00:40:5c:26:0a:5b
  5. [eth_init]MAC:0:40:5c:26:a:5b:
  6. TFTP from server 192.168.1.103; our IP address is 192.168.1.101
  7. Filename 'uImage'.
  8. Load address: 0xc0008000
  9. Loading: T #################################################################
  10. #################################################################
  11. #################################################################
  12. #################################################################
  13. ###################################################
  14. done
  15. Bytes transferred = 1590256 (1843f0 hex)
  16. SMDK6410 # bootm c0008000
  17. ## Booting image at c0008000 ...
  18. Image Name: Linux-3.5.4
  19. Created: 2012-09-17 10:55:54 UTC
  20. Image Type: ARM Linux Kernel Image (uncompressed)
  21. Data Size: 1590192 Bytes = 1.5 MB
  22. Load Address: 50008000
  23. Entry Point: 50008000
  24. Verifying Checksum ... OK
  25. OK 


**********************************************************

nfs install


***********************************************************

实现步骤:

1.服务器端:sudo apt-get install portmap

2.服务器端:sudo apt-get install nfs-kernel-server

3.客户端:sudo apt-get install nfs-common

4.服务器端配置:sudo gedit /etc/exports

添加:/nfs   *(rw,sync,no_root_squash)

(共享目录)        

(rw权限是可擦写,还有ro只读,

sync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘,

开放客户端使用root身份来操作服务器的文件系统,那么开no_root_squash才行,root_squash不允许)

5.服务器端启动:sudo /etc/init.d/portmap restart

6.服务器端启动:sudo /etc/init.d/nfs-kernel-server restart

sudo mount 172.22.83.3:/nfs /tftpboot


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值