week01
1.计算机组成

如图所示,根据冯诺依曼的体系结构来看,现代计算机设备主要有五个部分组成:运算器、控制器、存储器、输入设备、输出设备。CPU是中央处理器,由控制器和运算器组成,是一台计算机的运算核心和控制核心。存储器的主要功能是存储程序和各种数据。输入输出设备我们一般统称I/O,用于连接计算机内外部。而这些组件的连接则需要总线和主板来完成。
冯.诺依曼计算机的特点
1.计算机由运算器,存储器,控制器,输入设备和输出设备五大部分组成
2.指令和数据以同等地位存放与存储器内,并可按地址寻访
3.指令和数据用二进制表示
4.指令由操作码和地址码组成
5.存储程序
6.以运算器为中心
2.日志采集
默认nginx的日志存放于/var/log/nginx目录下,该目录默认的其他人权限为空。所以如果非root和nginx用户要想访问nginx的日志的话,可以使用setfacl添加rx权限即可。
操作如下:
#刚开始没有权限访问nginx日志
[app@master ~]$ tail -f /var/log/nginx/access.log
tail: cannot open ‘/var/log/nginx/access.log’ for reading: Permission denied
tail: no files remaining
#使用setfacl给app用户添加权限,只需要rx权限即可,防止误操作修改日志内容
[root@master ~]# setfacl -x u:app /var/log/nginx/
[root@master ~]# setfacl -m u:app:rx /var/log/nginx/
[root@master ~]# getfacl /var/log/nginx/
getfacl: Removing leading '/' from absolute path names
# file: var/log/nginx/
# owner: nginx
# group: root
user::rwx
user:app:r-x    #这里
group::rwx
mask::rwx
other::---
#测试访问,可以了
[app@master ~]$ tail -f /var/log/nginx/access.log
127.0.0.1 - - [06/Jun/2021:16:34:55 +0800] "GET / HTTP/1.1" 200 11149 "-" "curl/7.29.0" "-"
127.0.0.1 - - [06/Jun/2021:16:34:57 +0800] "GET / HTTP/1.1" 200 11149 "-" "curl/7.29.0" "-"
127.0.0.1 - - [06/Jun/2021:16:34:58 +0800] "GET / HTTP/1.1" 200 11149 "-" "curl/7.29.0" "-"
127.0.0.1 - - [06/Jun/2021:16:34:58 +0800] "GET / HTTP/1.1" 200 11149 "-" "curl/7.29.0" "-"
127.0.0.1 - - [06/Jun/2021:16:34:59 +0800] "GET / HTTP/1.1" 200 11149 "-" "curl/7.29.0" "-"
3.IO重定向
linux系统正常情况下从键盘或者鼠标接受用户的输入信息,然后将正确或者错误的结果输出到显示器上。其中的输入称为标准输入(文件描述符为0),输出则分为标准输出(文件描述符1)或者错误输出(文件描述符2)。
通过命令或者其他方式将输入或者输出方式更改的操作就是IO重定向。实际使用绝大部分都是使用输出重定向,比如备份信息或者cron job log信息重定向到某个日志文件中,方便查看运行结果。
输出重定向有覆盖输出重定向>和追加输出重定向>>之分。区别在于前者的后面的输出会覆盖上一次输出的内容,后者则是追加的形式。
输出还有正确输出和错误输出的区分。顾名思义,正确输出就是命令正确执行后的输出,错误输出一般就是一些提示或者告警信息。错误输出的表示符是:2>。
上述的>和>>属于正确输出重定向,错误输出还是会输出到屏幕上;为了收集错误输出,可以使用合并重定向,&> 或者 2&>1.
示例:
#输出重定向
[root@master ~]# cat init.sh > io.log  
[root@master ~]# cat init.sh >> io.log
[root@master ~]#lsl 1> err.log    #1>表示正确输出,因为命令错误,这里的结果不会重定向到err.log中
[root@master ~]#lsl 2> err.log    #2>表示错误输出,这里的日志里有错误说明
4.find某个权限的文件
#说明,所有类用户权限是指u,g,o三种权限
find /etc -type f -perm /222        #查找至少有一类用户有写权限的文件
find /etc -type f -not -perm /222   #查找/etc目录下所有类用户没有写权限的文件
find /etc -type f -perm -222        #所有类用户都有写权限(至少有写权限)的文件
find /etc -type f -not -perm -222   #至少有一类用户没有写权限的文件	
                    
                
                
            
        
浙公网安备 33010602011771号