Note2samba/nfs,ntp,log,ME,树莓派,pam/C#/pip/ffmpeg/office,VR,i2ctransfer写eeprom,大数据
Posted 码农编程录
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Note2samba/nfs,ntp,log,ME,树莓派,pam/C#/pip/ffmpeg/office,VR,i2ctransfer写eeprom,大数据相关的知识,希望对你有一定的参考价值。
文章目录
- 1.Samba服务器:利用文件传输协议:ftp,http,SMB(Samba)
- 2.NFS服务器:linux和linux之间,也可共享给win客户端
- 3./etc/ntp.conf:restrict (什么可访问我并可修改我的时间)10.75.92.0 mask 255.255.255.0 nomodify(nomodify不能修改,只能访问同步走)
- 4.导出log:filenum=$(ls -l | wc -l) ,ls -tr | head -1
- 5.进入ME刷bios:BIOS是一个程序,驻留在CMOS存储器(重复可擦写),刷写BIOS的过程就是用新版本的BIOS文件通过专门的刷新软件覆盖旧版本的BIOS文件
- 6.树莓派:是完整个人电脑,功耗非常大(相比于没有soc的单片机),物联网中要性能弱,所以树莓派只用于教学,树莓派4性能更强并有了usb3.0口和千兆网卡,用来做NAS,但做局域网中NAS不需要这么高性能,路由器就行且功耗比树莓派低的多
- 7.pam/C#/pip/ffmpeg/office:su直接切换root,需输入root密码。sudo su/-i:当前用户暂时申请root权限,需输入当前用户密码
- 7.1 pam:linux下可扩展的鉴权模块,PAM使用配置/etc/pam.d/下的文件来管理对程序的认证方式,应用程序调用相应的配置文件进而调用本地的认证模块(模块放置在/lib/security下,以加载动态库的形式)。su命令系统会提示你输入root用户的密码,这就是su命令通过调用PAM模块实现的
- 7.2 C#的winform:visual studio中新建Windows窗口应用程序,点击启动会弹出空白板
- 7.3 pip换源:win和linux
- 7.4 shapely:查看linux系统32/64位:getconf LONG_BIT,查看linux系统版本信息:lsb_release -a
- 7.5 ffmpeg压缩并拼接音频:.wav到.mp3
- 7.6 office:下载visio:http://www.itellyou.cn/用迅雷复制链接下载
- 7.7 深浅拷贝:ipinfo
- 8.远程升级PXE和XDPE的FW
- 9.i2ctransfer写数据到switch的eeprom
- 10.i2c-tools使用:b(bus)d(device)f(offset)
- 11.大数据:DFS即分布式文件系统也是文件系统(使用这文件系统的用户,不用关心文件是如何分布的),像windows右击磁盘属性,可看到是NTFS文件系统格式
1.Samba服务器:利用文件传输协议:ftp,http,SMB(Samba)
win下更改ip:本地连接右击属性,更改适配器。@market指market组。
如下第一行看本地源是否正常,第二行安装samba。
如下start启动samba。
如下设置开机自启动。
gpasswd是将用户加入组中。
如下将本地用户转变为samba用户即共享用户
。通过如下转变可实现该用户通过客户端访问服务器时提供验证标准了。
如下都是在文件末尾新添加的内容,都是逗号,writeable=no指除了下行外
都不能写。[manager]是共享名即对方能看到的网络文件夹名称,comment是可共享目录的描述信息(可加可不加),valid_users指谁可以访问。
如上保存后,如下重启,status查看出running。
如下用管理员账号登录修改任何目录没问题,其他用户登录只能进去或修改自己的文件夹。
1.1 隐藏共享和拒绝访问:无法在网上邻居看到我们所共享的文件夹,但是通过unc路径做具体指定,我们可以访问到该文件夹下
windows里只需在共享文件夹名后面加一个$符号就能实现隐藏共享了。linux的samba中需修改主配置文件。如下将manager目录做一个隐藏。
如下可将win下更改设配器将ip改变,就可访问了。
1.2 别名:别名配置文件要自己建立
1.3 免登陆名:启用share级别(安全性最低,不需要通过用户名认证)
如下guest这行可换成public=yes一样效果。
1.4 linux访问windows共享目录:mount
如下右击share文件夹属性。
如上操作后share文件夹就有读写权限了。如下设置win账号,因为默认禁止空密码登录。
如上准备好了文件夹和账户,如下cd /mnt ; mkdir win7,mount通过网络挂载需要加参数,linux挂载后再用mount指令看下。
2.NFS服务器:linux和linux之间,也可共享给win客户端
2.1 server:改ip和将目录共享
如下192.168.0.*也可以。
2.2 client-linux:mount
如下虽说给了nfs完全读写权限,但任何读写还受本身文件系统影响(win下有一个安全选项卡调节权限)。
2.3 client-windows:mount
控制面板-
程序-
打开或关闭windows功能。
3./etc/ntp.conf:restrict (什么可访问我并可修改我的时间)10.75.92.0 mask 255.255.255.0 nomodify(nomodify不能修改,只能访问同步走)
ntp.conf修改后10分钟后才同步,主机器没同步外网,子机器(slaver)不能同步主机器(master)。
ntp服务启动了就不能使用ntpdate,如下最后一行表示服务端地址不能同步
4.导出log:filenum=$(ls -l | wc -l) ,ls -tr | head -1
# auto_dump.sh
#!/bin/bash
work_path=$(pwd)
conf_file_path="$work_path/auto_dump.cfg"
dst_dir_path=""
search_path="/var/log"
if [ $# -ne 1 ];then
program=$(basename "$0")
echo "Usage: $program <dst_dir_path>"
echo "Examples:$program /root/os_log/"
exit
else
dst_dir_path=$1
fi
cat $conf_file_path | while read conf_path_line
do
last_file_path=$(basename $conf_path_line) #last_file_path=$conf_path_line##*/
tmp=$conf_path_line%/*
last_dir_path=$tmp##*/ # network
find $search_path -name $last_file_path | while read search_path_line
do
mkdir -p $dst_dir_path
dst_file_path=$dst_dir_path/tmp/$last_dir_path/
mkdir -p $dst_file_path
cp $search_path_line $dst_file_path
done
cd $dst_dir_path/tmp/
if [ ! -f $conf_path_line ];then
echo $conf_path_line" not found"
fi
done
// auto_dump.cfg
network/netstate.log
network/services.log
hardware/dmidecode.log
hardware/cmdline.log
message/alert.log
message/audit.log
#!/bin/bash
dst_dir_path="/home/os_log"
dst_dir_path_filenum=10
mkdir_tmp()
mkdir -p $dst_dir_path/tmp/network
mkdir -p $dst_dir_path/tmp/hardware
mkdir -p $dst_dir_path/tmp/message/var/log
write_network()
ifconfig > $dst_dir_path/tmp/network/ip.log
netstat > $dst_dir_path/tmp/network/netstate.log
route > $dst_dir_path/tmp/network/route.log
arp > $dst_dir_path/tmp/network/arp.log
systemctl -all > $dst_dir_path/tmp/network/services.log
write_hardware()
dmidecode > $dst_dir_path/tmp/hardware/dmidecode.log
cat /proc/cmdline > $dst_dir_path/tmp/hardware/cmdline.log
cat /proc/cpuinfo > $dst_dir_path/tmp/hardware/cpuinfo.log
cat /proc/meminfo > $dst_dir_path/tmp/hardware/meminfo.log
lsblk > $dst_dir_path/tmp/hardware/lsblk.log
mount > $dst_dir_path/tmp/hardware/mount.log
cat /proc/interrupts > $dst_dir_path/tmp/hardware/interrupts.log
lspci > $dst_dir_path/tmp/hardware/lspci.log
if [ -f $dst_dir_path/tmp/hardware/smartctl.log ];then
rm $dst_dir_path/tmp/hardware/smartctl.log
fi
fdisk -l | grep "/dev/sd" | awk 'print $2' | awk -F ':' 'print $1' > tmp
cat tmp | while read line
do
smartctl -a $line >> $dst_dir_path/tmp/hardware/smartctl.log
done
rm tmp
fdisk -l | grep "/dev/nvme" | head -1 | awk 'print $2' | awk -F ':' 'print $1' > tmp
cat tmp | while read line
do
smartctl -a $line >> $dst_dir_path/tmp/hardware/smartctl.log
done
rm tmp
cat /proc/modules > $dst_dir_path/tmp/hardware/modules.log
cat /proc/version > $dst_dir_path/tmp/hardware/version.log
tar_log()
cp -rf /var/log/* $dst_dir_path/tmp/message/var/log
cd $dst_dir_path/tmp
rm log.tar.gz
tar -czf log.tar.gz *
mv log.tar.gz $dst_dir_path/log.tar.gz
rm -rf $dst_dir_path/tmp
mov_log()
if [ -f $dst_dir_path/log.9.tar.gz ];then
rm $dst_dir_path/log.9.tar.gz
fi
if [ -f $dst_dir_path/log.tar.gz ];then
for((i=$(($dst_dir_path_filenum-2));i>=1;i--))
do
if [ -f $dst_dir_path/log.$i.tar.gz ];then
mv $dst_dir_path/log.$i.tar.gz $dst_dir_path/log.$(($i+1)).tar.gz
fi
done
mv $dst_dir_path/log.tar.gz $dst_dir_path/log.1.tar.gz
fi
mkdir_tmp
write_network
write_hardware
mov_log
tar_log
if [ -f $dst_dir_path/log.9.tar.gz ];then
rm $dst_dir_path/log.1.tar.gz
for((j=2;j<=$(($dst_dir_path_file_num-1));j++))
do
mv $dst_dir_path/log.$j.tar.gz $dst_dir_path/log.$(($j-1)).tar.gz
done
mv $dst_dir_path/log.tar.gz $dst_dir_path/log.9.tar.gz
fi
#################################
i=0
filenum=0
for i in $(ls)
do
if [ -f $i ]
then
let filenum+=1
fi
if [ $filenum==10 ];then
rm `ls -tr $(find . -type f -name "log_*") | head -1`
break
fi
done
#################################
if [ -f $dst_dir_path/log.tar ];then
mv $dst_dir_path/log.tar $dst_dir_path/log_$(date "+%Y-%m-%d_%H:%M:%S")_bak.tar
fi
5.进入ME刷bios:BIOS是一个程序,驻留在CMOS存储器(重复可擦写),刷写BIOS的过程就是用新版本的BIOS文件通过专门的刷新软件覆盖旧版本的BIOS文件
me:英特尔引擎固件,存在于bios文件里,如果你的电脑bios文件坏了,你从别人或网上下载的bios文件需要合成一下me才能刷到自己电脑里。或者电脑换了cpu或南桥,这样也要把原来的bios文件重新合成me,再把新的bios文件刷回去,这样电脑才会正常运行。cpu上电后me会一直往bios里的mtd即spi里写东西,bmc要升级bios时必须把me停了。
# BMC_BIOS_change.py
# $interface = "1.0"
import time
import sys
import os
import SecureCRT
def boot_os():
crt.Screen.WaitForString("localhost login:")
crt.Screen.Send("admin" +chr(13))
time.sleep (1)
crt.Screen.WaitForString("Password: ")
crt.Screen.Send("admin" +chr(13))
time.sleep (1)
crt.Screen.WaitForString("admin@localhost:~$")
crt.Screen.Send("sudo su" +chr(13))
time.sleep (1)
crt.Screen.WaitForString("root@localhost:/home/admin# ")
crt.Screen.Send("dmidecode -t 0" +chr(13)) # 查看BIOS信息
time.sleep (1)
def Checkinfo1():
crt.Screen.WaitForString("root@localhost:/home/admin#",1)
crt.Screen.Send("lspci |grep -i eth" +chr(13))
time.sleep (1)
crt.Screen.WaitForString("root@localhost:/home/admin#",1)
crt.Screen.Send("lspci |grep -i 07:00.0" +chr(13))
time.sleep (2)
crt.Screen.WaitForString("root@localhost:/home/admin#")
crt.Screen.Send("lsblk |grep -i sda" +chr(13))
time.sleep (2)
#############切换到BMC下###############
crt.Screen.WaitForString("root@localhost:/home/admin#")
crt.Screen.Send("\\025"+"\\022"+"\\024"+"1 \\r")
crt.Screen.SendSpecial("VT_KEYPAD_ENTER")
time.sleep (5)
# crt.Screen.WaitForString("bmc-oob. login:")
# crt.Screen.Send("root" +chr(13))
# crt.Screen.WaitForString("Password:")
# crt.Screen.Send("0penBmc" +chr(13))
crt.Screen.WaitForString("root@bmc-oob:~#")
crt.Screen.Send("boot_info.sh all" +chr(13))
time.sleep (2)
crt.Screen.Send("boot_info.sh reset bios master" +chr(13))
crt.Screen.WaitForString("root@bmc-oob:~#")
time.sleep (90)
#############切换到Sonic下###############
crt.Screen.WaitForString("root@bmc-oob:~#")
crt.Screen.Send("\\025"+"\\022"+"\\024"+"0 \\r")
crt.Screen.SendSpecial("VT_KEYPAD_ENTER")
time.sleep (1)
def Checkinfo2():
crt.Screen.WaitForString("root@localhost:/home/admin#",1)
crt.Screen.Send("lspci |grep -i eth" +chr(13))
time.sleep (1)
crt.Screen.WaitForString("root@localhost:/home/admin#",1)
crt.Screen.Send("lspci |grep -i 07:00.0" +chr(13))
time.sleep (2)
crt.Screen.WaitForString("root@localhost:/home/admin#")
crt.Screen.Send("lsblk |grep -i sda" +chr(13))
time.sleep (2)
#############切换到BMC下###############
crt.Screen.WaitForString("root@localhost:/home/admin#")
crt.Screen.Send("\\025"+"\\022"+"\\024"+"1 \\r")
crt.Screen.SendSpecial("VT_KEYPAD_ENTER")
time.sleep (1)
crt.Screen.WaitForString("root@bmc-oob:~#")
crt.Screen.Send("boot_info.sh all" +chr(13))
time.sleep (2)
crt.Screen.Send("boot_info.sh reset bios slave" +chr(13))
crt.Screen.WaitForString("root@bmc-oob:~#")
time.sleep (90)
#############切换到Sonic下###############
crt.Screen.WaitForString("root@bmc-oob:~#")
crt.Screen.Send("\\025"+"\\022"+"\\024"+"0 \\r")
crt.Screen.SendSpecial("VT_KEYPAD_ENTER")
time.sleep (1)
def Checkinfo3():
crt.Screen.WaitForString("root@localhost:/home/admin#",1)
crt.Screen.Send("lspci |grep -i eth" +chr(13))
time.sleep (1)
crt.Screen.WaitForString("root@localhost:/home/admin#",1)
crt.Screen.Send("lspci |grep -i 07:00.0" +chr(13))
time.sleep (2)
crt.Screen.WaitForString("root@localhost:/home/admin#")
crt.Screen.Send("lsblk |grep -i sda" +chr(13))
time.sleep (2)
#############切换到BMC下###############
crt.Screen.WaitForString("root@localhost:/home/admin#")
crt.Screen.Send("\\025"+"\\022"+"\\024"+"1 \\r")
crt.Screen.SendSpecial("VT_KEYPAD_ENTER")
time.sleep (1)
crt.Screen.WaitForString("bmc-oob. login:")
crt.Screen.Send("root" +chr(13))
crt.Screen.WaitForString("Password:")
crt.Screen.Send("0penBmc" +chr(13))
crt.Screen.WaitForString("root@bmc-oob:~#")
crt.Screen.Send("/var/log/./util.sh" +chr(13)) #####################
time.sleep (2)
def Main():
crt.Screen.Synchronous = True
for i in range (0,200):
boot_os()
time.sleep (2)
Checkinfo1()
boot_os()
Checkinfo2()
Checkinfo3()
time.sleep (2)
Main()
# util.sh
#!/bin/sh
i=1
while(( $i<=3 ))
do
ipmitool -b 1 -t 0x2c raw 0x2e 0xdf 0x57 0x01 0x00 0x01 #进入ME恢复模式
ret=$(/usr/bin/ipmitool -b 1 -t 0x2c raw 6 1 | awk -F " " 'print $15') #查询ME状态
if [ "$ret" = "00" ]; then
logger -p user.info "Enter ME recovery mode successfully"
spi_util.sh write BIOS1 image
break
fi
if [ "$ret" != "00" ]; then
logger -p user.info "Three times to enter ME recovery mode failed"
continue
fi
done
i=1
while(( $i<=3 ))
do
ipmitool -b 1 -t 0x2c raw 6 2 #退出ME
ret=$(/usr/bin/ipmitool -b 1 -t 0x2c raw 6 1 | awk -F " " 'print $15'以上是关于Note2samba/nfs,ntp,log,ME,树莓派,pam/C#/pip/ffmpeg/office,VR,i2ctransfer写eeprom,大数据的主要内容,如果未能解决你的问题,请参考以下文章