keras训练过程的保存

keras训练过程的保存

通过 TensorBoard 实现训练可视化
from datetime import datetime
TIMESTAMP = “{0:%Y-%m-%dT%H:%M:%S/}”.format(datetime.now())
log_dir = ‘./logs/’ + TIMESTAMP # 可以区分不同的训练(只用时间意义不明确,可以思考优化)
tbCallBack = TensorBoard(log_dir=log_dir, # log 目录
histogram_freq=0, # 按照何等频率(epoch)来计算直方图,0为不计算
write_graph=True, # 是否存储网络结构图
write_grads=True, # 是否可视化梯度直方图
write_images=True,# 是否可视化参数
embeddings_freq=0,
embeddings_layer_names=None,
embeddings_metadata=None)

model.fit(…inputs and parameters…, callbacks=[tbCallBack]) # 在回调函数中调用

tensorboard –logdir ./logs # 在终端输入

然后在浏览器中访问 http://localhost:6006

%title插图%num

通过 nohup 命令输出到 log 文件中
nohup python *.py > *.log 2>&1 &

2>&1 解释:将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 log 文件中

参考链接

keras+TensorBoard 实现训练可视化

tensorboard 多个 events 文件显示紊乱的解决办法

Linux nohup 命令

Python编写99乘法表

Python编写99乘法表

Python编写99乘法表

一、编写99乘法表

二、range内置函数

一、编写99乘法表

%title插图%num
for i in range(1, 10):
print() # 增加换行
for j in range(1, i + 1):
print(i, “*”, j, “=”, ‘{:<4}’.format(i * j), end=” “) # end=””,使得输出不换行
二、range内置函数
range(n):默认生成一个0到 n-1 的整数序列,对于这个整数序列,我们可以通过list()函数转换为列表类型的数据

range(n,m):默认生成一个 n 到 m-1 的整数序列,对于这个整数序列,我们可以通过list()函数转换为列表类型的数据

range(n,m,k):相当于其他函数里面的for循环,n初始值,m结束值,k步长,会生成初始值为n,结束值为m-1,递减或者递增

range返回的数据是支持使用for进行遍历的

支持下标取值和切片[:3] ,切片返回的还是range类型的数据

例子

# 50遍hello world后终止循环

for i in range(100):

print(“{}次,hello world”.format(i))

if i ==49:

break

Blender 常用API记录

Blender 常用API记录

将当前工作区设置为3D视图
bpy.context.area.ui_type = “VIEW_3D” #将当前工作区设置为3D视图
1
设置游标的位置
bpy.data.scenes[“Scene”].cursor.location = (0,0,0)
1
获取当前选择的物体(即激活物体)
#方法一
bpy.context.object
#方法二
bpy.context.active_object

获取场景中所有的材质球
mats = bpy.data.materials
for mat in mats:
print(mat.name)

获取某个物体所使用到的材质
#先获取场景中所有的材质球
mats = bpy.data.materials
#获取目标物体
#可以是激活的物体
obj = bpy.context.active_object
#obj = bpy.context.object
#获取这个物体所使用到的材质_slots
obj_mat_slots = obj.material_slots
#通过对这个obj_mat_slots的遍历获取其对应的name就是该材质球的名字
for mat_slot in obj_mat_slots:
print(mat_slot.name) //打印出对应的材质球名

#收集该物体使用的材质球储存为list
obj_mats = [mats[mat_slot.name] for mat_slot in obj_mat_slots]

#更新,可以直接通过遍历material_slots,然后点出material来收集该物体所使用到的材质球
obj_mats = [mat.material for mat in obj_mat_slots]

判断材质球是否有“人”使用
mats = bpy.data.materials
for mat in mats:
if mat.users == 0:
print(f”{mat.name}材质无人使用”)
return False
else:
print(f”{mat.name}材质有{str(mat.users)} ‘人’使用!”)
return True

自定义物体的ID属性
#obj = bpy.data.objects[“obj_name”]
obj = bpy.context.object
obj[“MyInt”] = 2 #int类型
obj[“MyFloat”] = 3.14 #float
obj[“MyBool”] = True #Bool

#访问这些自定义属性
obj[“MyInt”]
obj[“MyFloat”]
obj[“MyBool”]

#删除这些自定义属性
del obj[“MyInt”]
del obj[“MyFloat”]
del obj[“MyBool”]

自定义类属性 NNA
#Int
bpy.types.Ojbect.myInt = bpy.porps.IntProperty(
name = “test”,
max = 10,
min = 1,
default = 5
)
#Float
bpy.types.Mesh.myFloat = bpy.props.FloatProperty(
name = “myFloat”,
max = 10.0,
min = -10.0,
default = 1
)

#Bool
byp.types.Mesh.myBool = bpy.props.BoolProperty(
name = “myBool”,
default = False
)

#String
bpy.types.Scene.myString = bpy.props,StringProperty(
name = “myString”,
default = “myString”
)
#运行上面的代码,然后在控制窗里就可以进行下面的测试
C.scene.objects[‘group001’].myInt

#可以给类型进行如下属性的自定义
bpy.props.IntProperty
bpy.props.FloatProperty
bpy.props.StringProperty
bpy.props.EnumProperty
#结构体
bpy.props.PointProperty
#数组
bpy.props.IntVectorProperty
bpy.props.FloatVectorProperty
#删除自定义属性
bpy.props.RemoveProperty #有时会出错
del 属性名
del bpy.data.Object.myInt
#注意删除上面的类属性后,物体身上对应的该属性会转化为ID属性,需要进行再次删除
del bpy.data.objects[“cube”][“myInt”]

UI篇
看这篇 https://blog.csdn.net/weixin_41767230/article/details/116233196

python 库的使用

python 库的使用

python 库的使用
一、time库的使用
1.time库是python中处理时间的标准库。
1.1 使用方法:(*典型*直接的python标准库的使用方法)

import time
time.<b>()
1
2
1.2 time库包含三类函数:
1. 时间获取:time() ctime() gmtime()

1.time():获取当前的时间戳,得到浮点数,是计算机内部的时间值。
代码:>>>import time
time.time()
表示的是1970年1月1日00:00到当前时间,以秒为单位的数值。
2.ctime():获取当前时间并以异读方式表示,返回字符串。
代码:>>>import time
time.ctime()
2.gmtime():获取当前时间,该时间计算机可以进行处理。
代码:>>>import time
time.gmtime()
可以生成struct_time格式。

2. 程序计时:
sleep() 和perf_counter() :
测量起止动作所经历时间的过程,包括测量时间perf_counter() 和产生时间sleep() 两部分。
perf_counter() :返回一个CPU级别的精准时间计数值,单位为秒,由于起点值不确定,连续调用差值才有意义。(可以获取计算机CPU以其频率运行的时钟,以纳秒计算。)

>>>start = time.perf.counter()
>>>end = time.perf.counter()
>>>end – start

sleep() :让程序休眠s秒时,单位是秒,可以是浮点数类型。

>>>def wait():
time.sleep(2.2)
>>>wait() #程序将等待2.2秒后退出,即程序休眠2.2秒,停滞。

3. 时间格式化\输出:
strftime() :
将时间以合理方式展示出来的方法,类似字符串的格式化,需要一个展示模板,展示模板由特定的格式化控制符组成。
strptime():
可以将一个字符串变成一个计算机可以内部操作的一个时间

strftim (tpl,ts):有两个参数
*个参数tpl:格式化的模板字符串参数,定义输出效果。
第二个参数ts:计算机内部的时间类型的变量,是gmtime()输出的格式。
举例:>>>t = time.gmtime()
>>>time.strftime(“%Y-%m-%d %H:%M:%S,t) (#六个时间格式化控制符)
‘2021-04-28 12:59:46’
strptim (str,tpl):有两个参数
*个参数str:字符串形式的时间值
第二个参数tpl:格式化模板字符串,定义输出效果。
可以将一个字符串变成一个计算机可以内部操作的一个时间,可进一步转化为时间浮点数。

4. 控制符:所有的控制符都是以%加字符的形式出现。
%A:取值范围是Monday~Sunday,表示星期。
%a:取值范围是Mon~Sun,表示星期缩写。
%B:取值范围是January~December,表示月份名。
%b:取值范围是Jan~Dec,表示月份名缩写。
%d:取值范围是01~31,表示月份名缩写。
%M:取值范围是00~59,表示分钟。
%m:取值范围是01~12,表示月份。
%H:取值范围是00~23,表示24小时时间。
%I:取值范围是01~12,表示12小时时间。
%p:取值范围是AM/PM,表示上下午。
%S:取值范围是00~59,表示秒。
%Y:取值范围是0000~9999,表示年份。

变废为宝教你自己组建 NAS 服务器,非常简单实用。组装、品牌 NAS 推荐

前言:
老外不喜欢升级硬件和软件,大家应该都知道。我昨天无意看到 FreeNAS 自述文件,这个系统可以让你使用旧的计算机硬件,于是我决定这么做。垃圾电脑你怎么能没有,那你一定不是玩家。(垃圾电脑肯定比那些硬盘盒硬件要好的多)

后几楼有人说这 NAS 能干嘛,我觉得是*廉价提供多种网络及其服务的服务器:
SMB/CIFS Windows 标准共享(大家基本每天都会使用)
AFP AppleTalk File Protocol,Apple Talk 文件协议(用过 osX 的人都不会陌生)
NFS 是 Network File System 的简写,即网络文件系统(目前好多人追捧)
FTP 本地或者远程上传下载(很老的协议,大家都喜欢用)
TFTP Trivial File Transfer Protocol,简单文件传输协议
RSYNC 是类 unix 系统下的数据镜像备份工具
Unison 是一款跨平台的文件同步工具
SCP (SSH) 终端命令操作(目前很流行终端操作)
iSCSI Internet 小型计算机系统接口(可以把服务器的硬盘虚拟到本地,100mbs 网络可以达到 300mbs 的效果)
Bittorrent (Transmission) BT下载(大家都知道这是什么)
UPnP Server (FUPPES) 媒体共享
iTunes/DAAP (Firefly) iTunes 音乐共享
Webserver (lighttpd) 个人网站(这个还比较实用的,租个空间一年也要 200 元,还很小)
后面写到 150 人民币就可以提供上述网络及服务,还能 RAID。价格比路由器还要便宜,你该怎么选择呢?
路由器电源一般是 12V2A,硬盘盒电源一般是 12V2A 换算 12×4=48W,其实不像大家说的那么低。

我目前使用 Airport Extreme + WD My Book 4代,发帖电脑可以用 10.7、10.6、win7x64、win7x86 启动。

一、准备和使用你的旧电脑:
1、找到你的旧电脑(我使用这套电脑是我老婆 2001 年时候买的,当时很贵)
配置:P3 800、PC133 128mb、 i815 主板(集成显卡和声卡)、硬盘是 30gb(ATA66)、金河田机箱和电源(max 120W)
2、扩充内存(这种 PC133 内存很容易报警,要多尝试)
插入早些年买的 pc133 256mb(其实用一条内存就行,FreeNAS 自述写明 256mb 就够了)
3、插入网卡(*好使用带网卡主板,支持更好、并且节能)
没有网卡肯定不行,找到一个 pci 10/100mbs 网卡(购买的 intel PRO1000 82540EM 千兆网卡已经使用)
4、准备启动硬盘或者移动介质(大家注意要选择支持 usb 启动的主板)
安装 8.0 系统推荐使用独立的媒体安装,安装 7.0 系统可以选择安装到数据硬盘的*个分区。
推荐安装 FreeNAS 到独立的媒体中与数据硬盘分开使用,U盘、SD卡、TF卡都行,如果主板不支持 usb 启动,小容量硬盘、ide 电子盘、CF卡转 ide 都是你不错的选择。
这台电脑 bios 不支持 usb 启动(更新 rom 到*新,还是不支持),爱国者 16mb 的优盘、32mb 的 sony 蓝棒、2gb TF卡都没用上。
5、准备数据硬盘
如果你能找两个同样大小的硬盘可以做 RAID。(其实现在淘宝上 ide 250gb 很便宜)
我翻来翻去找到 CONNER ide 425mb 硬盘、ata100 80gb 硬盘、ata 133 120gb。
这个体验 80gb 肯定够了,将来主要观看 HK III 的片子。720P 目前以 iTuens 共享观看为主。(我的俄罗斯美女都藏在 WMV 格式里边,目前肯定无解)

二、安装 FreeNAS 8.0 版本:(系统必须安装在独立的媒体上)
1、下载、刻录
这条要求太苛刻了!但是必须的。(自述写明必须使用物理光驱)
下载 FreeNAS 系统(8.0.2 地址:http://sourceforge.net/projects/freenas/files/FreeNAS-8.0.2/
找一个刻录光驱和一张空白 cd 然后刻录。
2、安装系统
折腾了好长时间,这个 8.0.2 和以前版本不太一样,必须安装在独立的媒体上(硬盘或者 u 盘、tf 卡都可以,推荐 2gb 容量)。
这台电脑 bios 不支持 usb 启动,结果还是用到上面说的 30gb 的硬盘,系统安装在 30gb 里边。
选择比较简单,选择*个就行,ok、yes、什么的,就完成了根本不用设置。重启后看到 如:http://10.0.1.12 说明你成功了。
3、设置
用一个网段中的电脑输入 http://10.0.1.12 你会看到下面图片
%title插图%num
(1)设置中文 ,在项目 Language (Require UI reload) 中选择 Simplified Chinese 就 ok 了
%title插图%num
(2)创建卷,大概搜索一下,都说 zfs 厉害,就选择这个吧。
%title插图%num
%title插图%num
(3)服务,设置非常简单,有点像 ios 系统的操作。
%title插图%num
(4)共享,先搞一个 windows 实验一下。
%title插图%num
郁闷、犯错误了,服务没有启动 cifs ,要记得启动啊,工作组 Workgroup
%title插图%num
速度不是很理想
%title插图%num
不知道是不是我开启 AFP 共享,AppleTV 根本找不到 SMB 。。。不过我用 Mediaplay 观看效果不错。
%title插图%num
(5)目前是不是低能耗真的不是*主要的,这老机噪音要让发疯啊,我把电脑放阳台里边了,正好现在天冷。(楼下坛友已经解决噪音问题,使用一个 12cm 的风扇就够用。我的电脑离我卧室比较远,而且一般下载选择在晚上。)
4、经过这几天的测试,决定放弃 8.0 版本。
我发现 8.0 版本真的不怎么好用。到论坛求证,发现大家都在说,什么还是 7.0 好,8.0 换内核了。
我主要是因为 8.0 没有 BT 服务、UPnP 服务、iTunes/DAAP 服务、WEB 服务、TC 服务(不确定),对硬件要求高,等等。。。

三、安装 FreeNAS 7.0 版本:(7.0 版本可以只使用一块硬盘)
1、下载、刻录(自述写明必须使用物理光驱)
下载地址:http://sourceforge.net/projects/freenas/files/FreeNAS-7-Stable/0.7.2.8191/
2、安装和设置 7.0 教程很多,我就不啰嗦了。
这里提供 %title插图%num FreeNAS学习使用笔记.pdf (693 K) 下载次数:1389 %title插图%num FreeNAS中文使用手册.pdf (962 K) 下载次数:3999 下载。
(1)选择精简安装可能产生内存错误,(尽可能安装完全版本)
%title插图%num
① 安装精简版到硬盘或 Flash 磁盘或 USB 设备
② 安装精简版到硬盘或 Flash 磁盘或 USB 设备,同时进行数据分区
③ 完全安装到硬盘,同时进行数据分区
④ 从光盘升级精简版系统
⑤ 从光盘升级完全版系统
⑥ 升级和转换完全版系统到精简版系统
精简版系统信息图,内存大小错误,所以要选择完全安装。
%title插图%num
(2)精简、完整版本究竟需要多少空间呢,这个问题不好回答。(自述文件写明 64MB Flash、400MB Disk )
① 精简版本手头设备不太方便,暂时测试不了。
② 完全版本,我使用 425mb 硬盘安装,系统分区 380mb,没有使用 Swap 分区。
%title插图%num
3、100Mbs 网卡 和 1000 Mbs 网卡对比。
(1)下图为 8.0 和 7.0 对比(使用 100Mbs 网卡)
%title插图%num
%title插图%num
(2)下面为 100mbs 和 1000mbs 的对比
%title插图%num
(3)这台电脑硬件使用 1000mbs 只能达到 30mb/s,换另一台 AMD 2.0GMHz 的电脑轻松达到 50mb/s。
4、RIAD (读写是正常的两倍)
测试硬件,双 IDE 80gb 希捷硬盘。(重点:RAID 两个硬盘不要使用同一条硬盘线,每个硬盘一条独立的线,速度相差 20-30 mb/s)
测试平台 1,使用 win7 生成带区卷 RAID。测试平台 2,使用 osX 10.7 条带模式,速度很好很强大。
下图为 RAID 带区卷模式写 1000mbs 局域网
%title插图%num
这台电脑硬件使用 FreeNAS 中组建条带 RAID (UFS、ZFS),效果不理想,没有任何提升。
小插曲,因为我的笔记本硬盘有问题,Airport Extreme 不上盘,找了不少修复扇区软件,修来修去笔记本硬盘还是不上盘。
我开始怀疑软件有问题。
我有一个 03 年买的 80gb 硬盘(希捷 7 代),05 年 bt 废了(走到坏扇区,电脑直接找不到硬盘)然后一直放着。
先使用 HDTunePro 快扫有红色块,然后使用 HDD Regenerator Shell 1.71 特别版 和 DiskGenius 修复。
居然让我修好了,可能是科技发展了。原来问过要修好比买一个新硬盘还要贵。
5、BT 软件很好用,只要把“种子”放到监控文件夹中,下载自动开始,还能设置工作时间下载限制流量。
%title插图%num
%title插图%num
6、Time Machine 非常好用
(1 )按照下图选择(选项全开,名称自定义)
%title插图%num
(2 )新建一个共享位置(以免发生混乱,名称自定义)
%title插图%num
(3 )按照下图选择(硬盘发现模式选择 Time Machine)
%title插图%num
使用图,我的硬盘比较小,不是千兆网卡,我就不备份了。
%title插图%num
7、WEB 服务,这个太 Cool 了!
(1)注册动态 ip 域名,推荐 3322.org ,我 2004 年注册的 id 居然可以使用。
%title插图%num
(2)FreeNAS 开启 动态 dns 服务。用户名和密码要填写啊。
%title插图%num
(3)开启网页服务器。(小提示如果 80 端口使用了,去系统,常规,网页界面,里边的端口改成 88)
%title插图%num
(4)使用路由器 Airport Extreme 设置本地服务器 ip(如:10.0.1.12),打开个人 Web 共享。(就是开启 80 端口)
大家体验一下吧。
8、开启 UPnP 服务,AppleTV 访问 NAS 的一些编码率过大文件。
我一直认为这个服务很垃圾, 没有什么大用。(其实真的很垃圾,好多文件打不开。)
昨天使用 atv 看一个 avi 文件居然不能看居然说我网络有问题。。。
开启 UPnP 服务,我选择的 SONY PS3。
使用 xbmc 观看了昨天的 avi 很理想,字幕需要手动选择普通共享文件夹中的文件。
9、怎么用 iPad、iPhone、iTouch 访问 NAS 的文件呢?
我推荐 FileBrowser ,它功能很强大。
%title插图%num %title插图%num
%title插图%num
iTunes 商店购买
提供版本 %title插图%num FileBrowser 2.0.1.ipa (7941 K) 下载次数:217 你懂的。
10、iPad、iPhone、iTouch 在线观看 NAS 上的视频文件。
我暂时推荐 OPlayer iTunes 商店购买 iPhone 版本、 iTunes 商店购买 iPad 版本
%title插图%num %title插图%num
11、电脑 iTunes,iPad、iPhone、iTouch 在线收听音乐。
开启 iTunes/DAAP 服务,iTunes/DAAP 不支持 iTunes 10.5 版本和视频文件,失望非常啊。
(1)电脑中 iTunes 使用图:
%title插图%num
(2)iPad、iPhone、iTouch 使用方法:
谚语说,世上没有免费的午餐,这话一点都不假,我推荐个收费的软件 Audaria。
%title插图%num %title插图%num
%title插图%num %title插图%num
iTunes 商店购买
提供版本 %title插图%num Audaria 1.0.4.ipa (1238 K) 下载次数:198 你懂的。

四、安装 Windows XP、Windows server:
Windows 下一样可以假设 HTTP、FTP、TFTP、NFS 服务。但是这些不是我想要的,所以不提供教程。
这么搞是有原因的,一为迅雷下载,二为千兆网卡。达到这两个目标非常简单,写个简单的教程给大家参考。
1、安装 Windows
(1)我安装中关村 11 月版本,很快就完成。
%title插图%num
(2)下图为鲁大师查看的结果(我这么老的电脑都行的)
%title插图%num
2、远程桌面连接
(1)给你电脑改个好记的名称。
%title插图%num
(2)打开远程协助,给你的 Administrator 添加密码。(必须有密码)
%title插图%num
(3)使用 Windows 远程桌面连接输入电脑名称和用户名,输入密码。
%title插图%num
%title插图%num
(4)osX 一样可以操作,Microsoft 适用于 Mac 的远程桌面连接客户端 2.1.1
下载地址
osX 客户端需要输入 iP 地址
%title插图%num
输入用户名和密码
%title插图%num
下图为使用效果
%title插图%num
(5)iOS 一样可以操作,推荐个软件 iRDP AV。目前限免
%title插图%num%title插图%num
%title插图%num%title插图%num
iTunes 商店购买
3、电源管理
%title插图%num
4、重启、关机远程计算机(因为只有断开,所以要使用以下操作)
(1)在远程计算机的开始菜单 运行 键入cmd 回车,输入 shutdown -s -t(默认 60 秒关机),如果输入命令:shutdown -s -t 3600(3600 秒后关机),如果输入命令:shutdown -r -t(默认 60 秒重启)。
(2)建立记事本文件,输入:shutdown -s -t 5 ,保存 “关机.txt”,改名 “关机.bat”,拷贝到远程电脑桌面。同样操作 “重启.bat”,命令:shutdown -r -t 5 。“关机.bat” 和 “重启.bat” 一定要在远程计算机中使用。
5、使用迅雷下载,尽情享受吧!(离线下载需要会员支持)
(1)先在本地添加下载,下载时选择手工下载,打开离线下载,一般马上 100%,根据你宽带估计一晚上可以下载多少 GB。然后操作远程计算机,离线下载中所有任务取回本地。
(2)下图为下载中 cpu 使用情况
%title插图%num

五、关于能耗
1、P3 图拉丁配置目前比较主流
网上有很多降低耗电的方法,高手能搞到30w。需要打断 CPU 针脚,风险较大。我采用了调 66MHz/100MHz 方法,别的没有感觉,这 CPU 温度真少了很多。
%title插图%num
2、经过一段时间的研究,发现能低于 50W 就算是节能了。
路由器电源一般是 12V2A,硬盘盒电源一般是 12V2A 换算 12×4=48W,其实不像大家说的那么低。
3、开启网络唤醒,遥控开关机。
一直可以遥控关机,要能开机就完美了。测试不能成功,找了找资料这种主板要用 WOL 连线。
使用本来的 100mbs 网卡(D-link 友讯 DFE-530TX),这是个老技术 1000mbs 网卡应该不支持。
下图为遥控关机
%title插图%num
在地址栏内输入网址就可以启动计算机(关机后才可以开机,不可以切断电源或者直接使用)
%title插图%num
下图为网卡及 WOL 连线
%title插图%num
下图为主板 WOL 插槽
%title插图%num %title插图%num
这款主板 BIOS -> 电源管理 -> Resume on LAN -> 启用。
新款主板 BIOS 支持网络唤醒,启用就可以完美使用了,不再需要 WOL 连线。
4、科学才能检验真理
具体多少能耗必须使用仪器测试,算不出来的。插在插排前面的仪器。
taobao 找到一个德国货。
%title插图%num

六、组装、品牌 NAS 推荐
1、组装新机 (当然不包括硬盘)
(1)ATOM、ITX主板、千兆网卡版本、hdmi(价格 800人民币)
主板 580,ddr3 2gb 70,机箱、电源模块、火牛150 可能会更低。
优点:可以安装 win7或者win2008 server、可以连接电视、迅雷下载。 做客厅媒体中心。
(2)ATOM、ITX主板、千兆网卡版本(价格 500人民币左右)
D410PT  280,ddr2 1gb 50、2gb 100,机箱、电源模块、火牛150 可能会更低。
优点:省电、稳定、便宜。
(3)楼主推荐,超级便宜版本。
① VIA cpu ITX主板(价格 300人民币)
选择 100 左右的主板,ddr 512 50,机箱、电源模块、火牛150 可能会更低。
② P3 图拉丁 i815 主板(价格 150人民币)
图拉丁P3-S 1.4G + 815ET主板 75元,pc133 256mb 15元、512mb 30元,机箱、静音电源 45 可能会更低。
缺点:一般没有 sata 接口,不过 250gb ide 不贵,可以来两个组 RAID。主板没有千兆网卡,可以花 15 元买一个。只有 USB 1.0 如果想用 2.0,可以花 2-5 元买张 PCi 卡。
2、选择一个品牌产品
(1)价格(价格不包括运费)
① 西部数据 WD My book live 2TB 1250人民币(包括 2tb 硬盘,目前wd 2tb 绿盘 690 人民币)
② 巴法络 Buffalo LS-WXL/E1-AP 的盒子 640 人民币(不包括硬盘)
③ 群晖 Synology DS212j 1780 人民币(不包括硬盘,镀金的吗?)
(2)软件篇
① 西部数据 WD 在 iTunes 中的应用。
%title插图%num %title插图%num
只能有 3 个,但是基本够用了。
② 巴法络 Buffalo 在 iTunes 中的应用。
%title插图%num %title插图%num
同样也是 3 个软件。
③ 群晖 Synology 在 iTunes 中的应用。
%title插图%num %title插图%num
软件非常丰富。但是 $2.99×6=$17.94*6.5= 120 人民币。不知道贵的 1000 人民币是什么钱。
大家眼睛都是很亮的,自己选择吧。

搭建一个自己的文件上传服务器

由于看到了商城的项目,本来无心搭建那个文件上传服务器的,可是看到了人家自己使用了FastDFS服务器,我想自己怎么不能搭建呢,干就是了。

先介绍下为何使用这个东西:

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。
特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
FastDFS服务端主要有:跟踪器(tracker)群和存储节点(storage),跟踪器做调度工作,在访问上起负载均衡的作用,
跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。
其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。

上传交互过程编辑
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传。

下载交互过程编辑
1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。
需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。

那么如何安装使用呢:

················1.gcc环境
2.FastDFS依赖libevent库,需要安装:sudo apt-get install libevent
3.libfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。
将libfastcommonV1.0.7.tar.gz拷贝至/usr/local/下
cd /usr/local
tar -zxvf libfastcommonV1.0.7.tar.gz
cd libfastcommon-1.0.7
./make.sh
./make.sh install(下一步*重要)
同时要注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下
4.将FastDFS_v5.05.tar.gz拷贝至/usr/local/下
tar -zxvf FastDFS_v5.05.tar.gz

cd FastDFS

./make.sh
./make.sh install   安装成功将安装目录下的conf下的文件拷贝到/etc/fdfs/下。
5.配置tracker:
拷贝一份新的tracker配置文件:
cp tracker.conf.sample tracker.conf

修改tracker.conf
vi tracker.conf
base_path=/home/yuqing/FastDFS
改为:
base_path=/home/FastDFS
启动:tracker:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
6.配置存储的仓库:
拷贝一份新的storage配置文件:
cp storage.conf.sample storage.conf

修改storage.conf
vi storage.conf
group_name=group1
base_path=/home/yuqing/FastDFS改为:base_path=/home/FastDFS
store_path0=/home/yuqing/FastDFS改为:store_path0=/home/FastDFS/fdfs_storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=…..
#store_path2=……
tracker_server=192.168.101.3:22122   #配置tracker服务器:IP
#如果有多个则配置多个tracker
tracker_server=192.168.101.4:22122
启动仓库:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
7.配置开机自启:
在vim /etc/rc.local加入
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

这不是集群的使用方式那么该如何在代码中使用呢求那个看下面代码:
先把fastdfs_client的客户端jar包依赖加入maven中:
@Test
public void testUpload() throws Exception, MyException {
//trackerserver的服务器端口号为22122
//创建一个配置文件,文件名任意,内容就是tracker服务器的地址
//使用全局对象加载配置文件(必须是*对路径)
ClientGlobal.init(“F:\\Java\\javaEE/e3-manager-web/src/main/resources/conf/client.conf”);
//创建一个TrackerClient对象
TrackerClient trackerClient=new TrackerClient();
//通过TrackerClient获得TrackerServer对象
TrackerServer trackerServer=trackerClient.getConnection();
//创建一个引用的StorageServer的引用可以为null
StorageServer storageServer=null;
//创建一个StoreageClient参数需要TrackerServer和StorageServer
StorageClient storageClient=new StorageClient(trackerServer,storageServer);
//使用StorageClient上传文件(必须为*对路径)
String[] upload_file = storageClient.upload_file(“/.jpg”,”jpg”, null);
for(String string :upload_file) {
System.out.println(string);
}
}

private
/**
* 用工具类的方式测试
* @throws Exception
*/
public void testFastDfsClient() throws Exception {
FastDFSClient fastDFSClient=new FastDFSClient(“F:\\Java\\javaEE/e3-manager-web/src/main/resources/conf/client.conf”);
String string=fastDFSClient.uploadFile(“.jpg”);
System.out.println(string);
}
使用工具类上传,需要建立文件夹,然后通过文件的使用需要配置value()
/**
* 图片上传的
* @author leoill
*TODO
*2019年1月6日
*/
@Controller
public class PictureController {

@Value(“IMAGE_SERVER”)
private String IMAGE_URL;

@RequestMapping(“/pic/upload”)
@ResponseBody
public String uploadFile(MultipartFile uploadFile){
//返回String对象时直接返回的是contentType=”text/plain”
//把图片上传到服务器
try {
FastDFSClient fastDFSClient=new FastDFSClient(“classpath:conf/client.conf”);
//取出扩展名
String originalFilename = uploadFile.getOriginalFilename();
//originalFilename.substring(originalFilename.lastIndexOf(“.”)+1)
//返回一个图片的地址和文件名
String url = fastDFSClient.uploadFile(uploadFile.getBytes(), originalFilename.substring(originalFilename.lastIndexOf(“.”)+1));
//补充完整的URL
url=IMAGE_URL+url;
//封装到map
Map<String, Object> map=new HashMap<>();
map.put(“error”, 0);
map.put(“url”, url);
return JsonUtils.objectToJson(map);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Map<String, Object> map=new HashMap<>();
map.put(“error”, 1);
map.put(“message”, “图片上传失败”);
return JsonUtils.objectToJson(map);
}

使用前必须搭建这个服务,通过加载配置文件,把其中的数据给加载进去。
以上就是fastDFS的搭建过程了,搭建过程感觉有坑,但是也在填坑。集群的方式搭建就看后来的文章吧,今天就到这里了。不明白的可以私信我。

java 个人存储服务器搭建_我的世界个人服务器搭建

环境:CentOS 6.0+   openjdk-1.8

安装jdk:

yum install java-1.8.0-openjdk.x86_64

安装宝塔面板:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

*步:安装宝塔面板

复制命令,到服务器控制台输入,具体登录参考ssh登录的方法

等待安装

两分钟后安装成功

复制一些重要信息

Bt-Panel: http://134.175.120.169:8888/32831e0d

username: kq4q5xpp     #用户名

password: e1fe0472      #密码

下载好上面百度网盘两个文件  上传jar包(服务端)到云服务器  具体:到home目录下新建文件夹  *好是英文名

上传好后  Java -jar运行   不过先安装jdk  检查安装是否成功  输入java  我们不需要开发  所以不用配置java环境

OK  安装成功java

进入刚刚jar包目录

Java -jar  这里出错了  需要修改里面的一些东西

eula=false这里改成eula=true

重新运行  *次很慢

低配置服务器用这条命令运行,因为运行内存太小  这里限制512MB  可以修改

java -Xms256m -Xmx512m -jar /home/Minecraft/minecraft_server.1.12.jar nogui

好了  运行好了  开始客户端的使用   服务端版本1.12  和客户端一定要是一致  客户端也要有java环境

我们换一个工具连接服务器

现在开启服务器端口  25565

好了  现在可以加入游戏了  具体游戏的的配置信息  参考这里

#Minecraft server properties 无视他就行,只是说明这个是神马东西而已

#Mon Nov 21 19:18:32 PST 2013 建立时间(星期几/月/日/时/分/秒/时区/年份)

level-name=world 世界的名字,例子:level-name=liu464765169,“=”号后的名字必须要在服务端目录有对应存档否则将会自动生成随机地图,导入存档时记得修改,多世界的配置需要依赖插件,可在站内搜索进行配置。

allow-nether=true 是否允许地狱,true(是) false(不是)

view-distance=10 观望距离 (注意,类似ptweaks等任何防卡顿插件都会替换本选项的参数,修改这里无效请检查插件配置)

11.spawn-monsters=true 是否刷怪物,true(是) false(不是)

13.difficulty=1 难度,随便啦

15.gamemode=0 模式,0(生存) 1(创造)

17.spawn-animals=true 刷生物,true(是) false(不是)

18.(注意 spawn-monsters difficulty gamemode spawn-animals四项会被任何带权限管理的多世界插件替换,部分防卡顿以及限制动物插件也会起到同样效果,如mv多世界插件。)

20.max-players=20 *多同时在线人数

22.online-mode=true 官网正版认证,true(是) false(不是)<-盗版必选

24.server-ip= 服务器IP

25.enable-command-block=true 是否使用命令方块…true(是) false(否)(强烈建议正规的服务器将此项设为false,因为这实在是太危险了,只要有一个命令方块就是全民OP的……)

27.pvp=true 玩家VS玩家,true(可以) false(不可以)

29.level-seed= 地图种子,随机不要添

31.server-port=25565 服务器端口,默认25565

33.allow-flight=false 飞行许可,一般都不允许拉,你不想看到玩家在里面乱飞

35.white-list=false 白名单,true(使用) false(不使用)

37.motd=A Minecraft Server 服务器备注(此项可以被motd美化插件替换,这里的motd仅支持英文单色,强烈建议使用ppmotd、motdcolor的美化插件美化,可以去本站搜索下载哦。)

注意   一定要保持服务一直在运行 一旦在我的电脑关掉控制窗口 进程就结束

NAS服务器和传统服务器的区别NAS服务器和传统服务器的区别

NAS服务器和传统服务器的区别

NAS服务器和传统服务器的显著区别

  • 可提供更加可靠和安全的数据保护
  • 可提供不间断地在线扩容存储空间,不需停机
  • 可实现数据的集中存储和备份,节省硬件投入
  • 支持各种类型的网络用户,多平台操作系统的用户都可以访问NAS上的共享数据
  • 配置简单,管理方便,节省人员成本

所谓NAS,通俗地讲就是直接挂接在网上的存储设备,实际上就是一台专用数据服务器,它不再承担应用服务(又称为”瘦服务器”),可通过网络接口与应用服 务器连接,支持通用的数据传输协议,从而与生俱来地具备在异构服务器间共享数据的能力,进而使得维护和管理既简单易行,又便于控制网络上的每一个存储点。

Nastar网络存储器是一种典型的网络连接存储设备,网络中的存储设备按连接方式可以分为三种:DAS(直接连接存储器),NAS(网络连接存储器),SAN(存储区域网)。NAS网络存储器具有*佳的性价比,既保护了系统的已有资源,又能非常容易的配置和管理。
2003年2月18日北方网络隆重推出NAStar4000系列新品。此系列NAS产品是北方网络与世界*的存储厂商—-美国AMI公司进行技术合作共同研制开发的存储精品。
NAStar4000系列产品是针对高性能、高容量、高可靠性的需求而设计的。其使用了业内NAS存储产品中的顶级配置,首次采用了 Pentium 4 2GHZ CPU ,512MB内存(*大3GB),支持三片Gigabit Ethernet千兆网卡,可选配冗余电源,*大扩展容量高达3TB。
典型应用:
多媒体教室,资源库服务器
适用对象–学校等教育单位,各事业单位的教学培训中心

  • 即插即用,物超所值的独立式多媒体教学服务器
  • 安装简便,使用简单
  • 容量扩充,满足资源库大容量的需求
  • 随意教、随意学、随选频视(VOD)
  • 高容量和高效能系统特性,跨平台数据共享,比普通服务器更方便使用

随着网络信息技术的快速提升,教学资源库不再局限于传统的课本文章,数字与静态图片的呈现,如何创造更丰富且多元化的多媒体教学环境,已是当前各校积*推 广诉求重点,高效能网络设备的应用,将多媒体影音动画、视频、电子图档、光盘图书、交互式电子图书,甚至全球资讯网连接起来,传播到每一间教室,真正做到 随选教学的目标,且达到*佳的学习效果。因此,利用学校现有的网络设备,搭配Nastar存储设备即可储存课堂中大量使用的教学内容分享至网络中,将所有 资源供多部电脑共享,达到网络资源共享,处处都是教室的目标。
数字图书馆海量存储系统适用对象–图书馆、博物馆、视听中心
将图书馆内现有的光盘资料和检索档案,利用Nastar存储实现数据集中管理,可以让馆内联结的工作站,甚至在Internet的读者能够轻易的透过网络 来阅读网络存储资料,且若将各种书籍、报章杂志及各式纸上出版品以数字化方式(扫描或光学字元辨识)储存在NAS上,即可建构一个超越时空的高速数字化电 子图书馆。
经过数字化的转换处理,每台NAS存储器可以存储千万兆的数据容量,相当于数千万页的图书资料。若加上书目查询系统与全文检索系统的整合,各种信息将在您弹指之间垂手可得,再也不用为了找询资料而伤透脑筋了。
超大容量备份服务器
适用对象–书籍、杂志出版社、数字媒体工作室、Data Center 、政府单位、大型企业、户政、地政、
电子公文管理系统、制造业CAD/CAM设计部门、建筑师事务所、医院病历和X光借阅室
使用效益

  • 系统具高稳定性与可靠性,可提供客户24*7的即时服务
  • 配合大量档案和资料储存的各种完整解决方案
  • 资料集中管理和安全备份,并降低整体储存设备扩充成本
  • 降低档案服务器网络流量负担,提升网络资料存取速度效能

·   可搭配必要的备份软件,将资料传至NAS作集中备份,由于资料不断的暴增,常衍生存储容量不足和备份的问题。因NAS具备在线即时备份。速度快和高容量的特性,可将前端所有应用服务器的资料备份到NAS上,从而确保数据不会遭到破坏。

搭建邮件服务器,过程非常简单

搭建邮件服务器,过程非常简单,只需几个步骤即可。
通常在Linux搭建邮件服务器是需要安装很多软件和配置文件的,所以我们可以使用一个开源邮件服务器软件来搭建的。

准备一台服务器与系统
云服务器或本地虚拟的服务器都可以。
服务器需要能链接网络。
安装centos6/7系统,需要全新干净的系统环境。
配置系统
检查swap是否已启动,如没启动需要配置启动swap。

下载EwoMail邮件服务器
在git下载EwoMail开源版
git地址:https://gitee.com/laowu5/EwoMail

EwoMail集成的软件:

Postfix:邮件服务器
Dovecot:IMAP/POP3/邮件存储
Amavisd:反垃圾和反病毒
Fail2ban:监控策略
LNAMP:apache2.2,nginx1.8, mysql5.5,php5.4
EwoMail-Admin:WEB邮箱管理后台
Rainloop:webmail

安装
将安装包重新命名ewomail.zip
解压安装

unzip -o ewomail.zip
cd EwoMail/install
#需要输入一个邮箱域名,不需要前缀,列如下面的xxx.com
sh ./start.sh xxx.com

安装成功会出现“Complete installation”
剩下只需要配置域名DNS即可使用了

配置域名DNS

%title插图%num

请参考上图DNS配置
将mail.ewomail.cn 改成你的安装的域名,例如(mail.安装的域名)
红色部分请改为你的服务器IP

管理后台

%title插图%num

管理后台用于管理你的邮箱和域名,可以无限添加域名和邮箱。
地址:http://IP:8010 (IP是你的服务器公网IP)

WebMail

%title插图%num

WebMail用于登录邮箱,发送与接收邮件。

结尾

经过以上几个步骤,基本已经完成搭建一个邮件服务器了,使用过程中如果有什么问题可以留言给我

 

Oracle 11g 迁移数据文件

一、基础环境

操作系统:Windows 或 Linux

数据库版本:Oracle Database 11g R2

二、解决问题

1、我们在进行备份数据库或者进行复杂的操作的时候,表空间自动扩展功能开启的时候,会提示磁盘空间不足。

2、将数据文件分散到不同的磁盘,以提高数据库的 I/O 性能。

三、操作步骤

1、以 DBA 的身份登陆SQL Plus ;

sqlplus / as sysdba;
2.1、查询数据文件清单:数据表空间、索引表空间使用以下语句

SELECT NAME FROM V$DATAFILE;
2.2、查询数据文件清单:临时表空间使用以下语句

SELECT FILE_NAME FROM DBA_TEMP_FILES
3、正常关闭数据库。

SHUTDOWN IMMEDIATE;
4、开始移动数据文件(为了保险起见,也可使用复制命令)。

特别说明:在SQL Plus中,先输入一个$,后面再加上操作系统的命令,可以执行操作系统的操作;数据文件的路径必须是英文双引号;在Windows 系统中,命令和路径不区分大小写,大小写均可; 在 Linux 系统中,命令和路径是区分大小写的,因此必须使用小写。

Windows 系统:

$move “D:\PROGRAMFILES\ORACLE\ORADATA\ORCL\SSPT01.DBF” “E:\ORADATA\SSPT01.DBF”;
Linux 系统:

$mv “/oradata/orcl/SSPT01.DBF” “/opt/oradata/SSPT01.DBF”;
5、将数据库启动到 mount 状态。

STARTUP MOUNT;
6、修改数据文件名称,数据文件路径必须使用单引号。(以下语句中的路径为 Windows 路径,可以替换成 Linux 路径)

ALTER DATABASE RENAME FILE ‘D:\PROGRAMFILES\ORACLE\ORADATA\ORCL\SSPT01.DBF’ TO ‘E:\ORADATA\SSPT01.DBF’;
7、打开数据库。

ALTER DATABASE OPEN;
8、查询数据库数据文件状态。

SELECT NAME,STATUS FROM V$DATAFILE;
9、查询 scott.emp 表中的数据。

SELECT * FROM SCOTT.EMP;
10、操作完成,退出 SQL Plus。