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)

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,大数据的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本安装ntp server 服务

ntp 看看打印命令

将Windows系统设置NTP服务器-NetTime篇

NTP服务器的搭建和时间同步

Linux 配置阿里 OPSX NTP服务

logging.handler.TimedRotatingFileHandler 从不旋转日志