今天来分享一下linux常用命令——系统管理、磁盘管理 linux常用系统管理、磁盘管理命令 1. df :显示磁盘空间使用 功能:查看文件系统的磁盘空间使用情况,包括总容量、已用空间、可用空间和挂载点 2. ps :显示进程状态 功能:查看系统中当前运行的进程信息(进程 ID、状态、资源占用等)。 的进程(无法抗拒) kill -1 8080 # 重启PID为8080的进程(如重载服务配置) kill $(ps aux | grep "python" | awk '{print $2}
os模块包含了大部分的Linux命令, 简单举例如下: In [1]: import os In [2]: os.system('ls -l') total 12 -rw-r--r-- 1 root root 107 Mar 1 19:31 1.txt -rw-r--r-- 1 root root 214 Mar 1 19:30 2.txt lrwxrwxrwx 1 root root 21 Mar 1 22:13 functions.sh -> /etc/init.d/functions drwxr-xr-x 3 root root 4096 Mar 1 22:16 test Out[2]: Out[4]: ['1.txt', 'functions.sh', '2.txt', 'test'] In [5]: os.chdir('test') In [6]: os.getcwd() Out[6 , '.tbz2'], "bzip2'ed tar-file"), ('gztar', ['.tar.gz', '.tgz'], "gzip'ed tar-file"), ('tar', ['.tar
,GUID),进而全面支持大于2T硬盘空间在企业中使用。 GPT优点支持2T以上磁盘,如果使用Fdisk分区,最大只能建立2TB大小的分区,创建大于2TB的分区,需使用parted,同时必须使用64位操作系统,Mac、Linux系统都能支持GPT分区格式,Windows Linux常见的引导程序包括:LILO、GRUB、GRUB2,CentOS 7 Linux默认使用GRUB2引导程序,引导系统启动。 如图所示为GRUB加载引导流程: GRUB2是基于GRUB开发成更加安全强大的多系统引导程序,最新Linux发行版都是使用GRUB2作为引导程序。 同时GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同时也就不需要像GRUB分为stage1,stage1.5,stage2三个阶段。
1、术语 BIOS 硬盘分区:MBR GPT GRUB:多操作系统启动程序 2、启动流程 ?
2 需要进行删除数据库的操作,但是目前需要进行处理的数据库正在被某些线程占用,所以需要清理这些连接的session 3 由于意外,应用程序大量建立与数据库的连接,并达到最大值,需要临时清理一些连接, 在上面的关于数据库连接和断开连接的事情告一段落后,下面就来到了,数据库的配置方面的事情 书中提到,如何获取PostgreSQL 的设置的参数的三种方式 1 通过postgresql.conf 配置文件来获得 2 修改部分系统值是可以通过 set_config 来做到的 例如 方式1 ,仅仅对当前运行的语句有效 方式2 对当前的session 有效 其实两个方式不同的就是 set_config 后的参数true current_setting(name), source FROM pg_settings WHERE source IN ('configuration file'); 当然查看数据库的容量也是日常系统管理的一个重要的工作
使用 df 命令df -h 使用 lsblk 命令lsblk 2. 创建文件系统使用 mkfs 命令创建新的文件系统。 调整文件系统大小使用 resize2fs 和 xfs_growfs 命令调整文件系统的大小。调整 ext4 文件系统大小确保文件系统已卸载或以只读方式挂载。 调整文件系统大小:sudo resize2fs /dev/sdXn调整 xfs 文件系统大小确保文件系统已挂载。调整分区大小(例如使用 fdisk 或 parted)。 扩展逻辑卷扩展物理卷(如果需要):sudo pvresize /dev/sdXn扩展逻辑卷:sudo lvextend -L +5G /dev/myvg/mylv调整文件系统大小:sudo resize2fs
有时候我们需要在若干台linux主机上执行相同的命令,或者安装相同的软件,可以使用如下两种方法: 实验环境,有9台RHEL5.5_x64的主机,host表如下: test-1 10.9.1.1 test-2 2.把要安装的目标主机添加为管理主机: qconf –ah hkdev-4 3.在目标节点上新建sgeadmin用户,拷贝整个安装包到目标主机 4.配置service 端口: Vim /etc/service 2.要求关闭防火墙或者打开端口,我选择了关闭防火墙 2.添加队列: 新建一个队列hiseq.q: [root@hkdevlogin-1 ~]# qconf -aq hiseq.q //队列名 qname hkdevlogin-1 ~]# qconf -mhgrp @hiseqhosts group_name @hiseqhosts hostlist hkdev-1.genomics.org.cn hkdev-2. 相同的uid和gid 查看队列中主机的情况: qselect –q 队列名称 [root@hkdevlogin-1 ~]# qselect -q hiseq.q hiseq.q@hkdev-2.
<1>查看当前日历:cal cal命令用于查看当前日历,-y显示整年日历: <2>显示或设置时间:date 设置时间格式(需要管理员权限): date [MMDDhhmm[[CC]YY][.ss]]
在Linux系统管理的广阔领域中,数据处理与系统维护是两项最重要的技能了。从文件的高效压缩与解压,到跨服务器的安全数据传输,再到系统性能的全面监控与优化,每一步都关乎着服务器的稳定运行与数据安全。 tar -cJvf highly_compressed.tar.xz /large_data/2. 快速恢复与选择性提取解压操作同样需要技巧。 ssh-keygen -t rsa # 本地生成密钥对ssh-copy-id user@remote_server # 将公钥复制到远程服务器2. rsync:增量同步的利器rsync命令以其增量同步的特性 2. sar:历史性能数据分析sar命令能够记录系统的历史性能数据,通过分析这些数据,我们可以发现潜在的性能瓶颈与趋势。定期收集数据:通过cron定时任务,定期运行sar收集性能数据。 这样,我们才能跟上技术环境的不断变化,成为真正的Linux系统管理高手。
1、系统管理:账号管理、增删硬件、执行备份、安装和更新软件、监视系统、故障诊断、系统安全 2、sort -t: -k3,3 -n /etc/passwd image.png 3、uniq -c 4 python读文件 image.png 9、python sys os image.png 10、引导的过程: MBR读取引导加载程序 加载并初始化内核 检测和配置设备 创建内核进程 系统管理员干预
ls 是一个进程,但一运行就结束,很难抓住 2、进程管理的作用 判断服务器健康状态 查看系统中所有进程 杀死进程 3、查看系统中所有进程 [root@localhost ~]# ps aux #查看系统中所有进程 第一行信息为任务队列信息 内容 说明 12:26:46 系统当前时间 up 1 day, 13:32 系统的运行时间,本机已经运行1天13小时32分钟 2 users 当前登录了两个用户 load average 2 SIGINT 程序终止信号,用于终止前台进程。相当于输出ctrl+c快捷键。 8 SIGFPE 在发生致命的算术运算错误时发出. [root@localhost ~]# kill -1 22354 #重启进程 [root@localhost ~]# kill -9 22368 #强制杀死进程 2、killall命令 [root 13.2 工作管理 1、把进程放入后台 tar -zcf etc.tar.gz /etc & [root@localhost ~]# top #在top命令执行的过程中,按下ctrl+z快捷键 2、
Gathering system information with %s command:\n" % uname) subprocess.call([uname, uname_arg]) #Command 2 UNAME="uname -a" printf "Gathering system information with the $UNAME command: \n\n" $UNAME #Command 2 uname -a" printf "Gathering system information with the $UNAME command: \n\n" $UNAME } #Command 2 Gathering system information with %s command:\n" % uname) subprocess.call([uname, uname_arg]) #Command 2
命令输出说明: 负载信息 命令输出值 当前服务器时间 14:20:27 当前服务器运行时长 2 min 当前用户数 2 users 当前负载情况 load average: 0.03, 0.04, 0.02
2.类似于web服务,邮件服务器这种对外服务的业务环境,与核心业务线上环境隔离,集中管理并使用虚拟机部署 3.网关这类需要面向所有用户开放的服务器,严格控制WEB服务的IP访问许可,不允许部署完全开放的 1.系统版本 2.分区方式 3.目录使用规范 4.默认防火墙规则 5.默认账号权限 6.ssh远程连接 7.新软件的安装 8.新应用申请流程 分区方式 分区:根据磁盘大小分成n个分区,分区名字为datan 数据目录 + 项目名称 /data/ /data/mysql/ 日志目录 +项目名称 /data/log/ 防火墙 默认只对特定IP开放ssh端口 数据库标准 mysql数据库 1.统一版本信息 2. 统一安装方式 3.安全机制 4.统一服务端口 5.系统管理权限 6.备份策略 应用服务器 1.统一版本信息 2.安全机制 3.统一服务端口 其他 1.定期更新密码 2.定期对业务系统进行安全扫描
建立分区之后需要重启电脑) 然后进入建立文件系统 mkfs -t [文件系统类型][磁盘设备名] mkfs -t ext3 /dev/sdb1 格式化sdb1创建ext3文件系统(有ext2,
里是否有用户在配额当前分区,如果有用quotaoff关闭 Øedquota -u 用户 ------> edit quota 块或节点的软硬限制设置 ps:edquota -p student normal1 normal2 ---> 将student用户的配额设置映射到用户normal1和用户normal2上(大致意思就是这样后面两个新用户的配额设置可以跟前student用户当前设置的一样) --> 已定义的用户原型中配置 Ø-C create -l level -n 用的盘numbers -x 备用数 -n --raid-devices -x --spare Ømdadm -C /dev/md1 -l 1 -n 2 -x 1 /dev/vda{6,7,8} Ø watch -n 2 cat /proc/mdstat Øiostate ØUsage: iostat [ options ] [ <interval
系统管理 预习内容 1.iptables规则备份和恢复 2.firewalld的9个zone 2.1开启firewalld 2.2 firewalld中的zone 3.firewalld关于zone netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关 network 0:关 1:关 2:开 3:开 4:开 5:开 6:关 6.2 参数用法 –add netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关 network 0:关 1:关 2:开 3:关 4:开 5:开 6:关 [root@linux- netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关 network 0:关 1:关 2:开 3:关 4:关 5:关 6:关 [root@linux-02 netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关 network 0:关 1:关 2:开 3:开 4:开 5:开 6:关 7.
kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。
举例 [root@study ~]# vmstat 3 5 每2秒统计一次输出,统计5次后停止输出 image.png procs r列表示运行和等待CPU时间片的进程数,此数值如果长期大于系统 举例 [root@study ~]# sar -u 3 5 每2秒统计一次输出,统计5次后停止输出。 解释 %user列显示了用户进程占用CPU的时间百分比。 2. 若有多个CPU,可使用sar -P 0 3 5对第一个CPU进行查询,第二个CPU即位sar -P 1 3 5。 iostat命令 作用:用于监视系统输入输出设备和CPU的使用情况。 磁盘I/O性能评估 sar -d命令 作用:见上 语法:见上 举例 [root@study ~]# sar -d 2 3 解释 DEV:表示磁盘设备名称; tps:表示每秒到屋里磁盘的传送数 举例 [root@study ~]# sar -n DEV 2 3 解释 IFACE:表示网络接口设备; rxpck/s:表示每秒钟接受的数据包大小; txpck/s:表示每秒钟发送的数据包大小
上一节,起了几个简单例子,目的是解释Python其实并难,特别适用了Ipython这样一个利器,既然是Python的系统管理,面向系统管理员,Python的优点之一是其交互式解释器,也称作shell,和 切片:是必须的 Len () 求字符串长度 + 连接2个xulie *重复次数类似于数字打印次数。 In判断某一字符是否在字符串中。 Max ()返回最大值 Min()返回最小值 Cmp (tmp1, tmp2) 两字符串是否相同。判断, 元组():元组和列表十分相似,只不过元组和字符串一样是不可变的即你不能修改元组。 元组定义: T=(“milo”,30,”male”) T[0] t[1] t[2] 创建元组: 一个空的元组由一对空的括号组成: 如myempty=() 含有单个元素的元组 Singleton=(2,) ((‘x’,’y’),-1) Dic={0:0,1:1,2:2} 前面的为key后面的为value: 为定义分隔符。