1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826
| 参数替换xargs [root@localhost ~] [root@localhost ~]
取ip地址 [root@localhost ~] [root@localhost ~]
扫描系统新硬盘设备 [root@localhost ~]
查看该目录是否被访问 [root@localhost ~] COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 49866 root cwd DIR 11,0 2048 1856 /mnt/cdrom bash 49949 xingbo cwd DIR 11,0 2048 1856 /mnt/cdrom
给pts/1客户端发送消息 [root@localhost ~]
查看该目录被哪些用户访问 [root@localhost ~] USER PID ACCESS COMMAND /mnt/cdrom: root kernel mount /mnt/cdrom root 49866 ..c.. bash xingbo 49949 ..c.. bash
剔除访问该目录的用户 [root@localhost ~] /mnt/cdrom: 49866c 49949c
查看该目录是否处于挂载状态 [root@localhost ~] TARGET SOURCE FSTYPE OPTIONS /mnt/cdrom /dev/sr0 iso9660 ro,relatime
查看支持的文件系统 [root@localhost ~]
创建文件系统并挂载 [root@localhost ~] [root@localhost ~] [root@localhost ~]
弹出光驱 [root@localhost ~] 弹入光驱 [root@localhost ~]
dd命令 dd if=读取文件,of=写入文件,bs=指定块大小,ibs(一次读入大小),obs(一次写入大小), skip=跳过ibs大小的块开始读取,seek=跳过obs大小的块开始写入,count=数量; conv=用指定的参数转换文件,lcase把大写字符转换为小写字符,ucase把小写字符转换为大写字符> (例:dd if=/etc/fstab of=FSTAB conv=ucase), fdatasync 直接写入物理磁盘(dd if=/dev/zero of=/tmp/f1 bs=1M count=100 conv=fdatasync 测试硬盘写入速度), notrunc不截断输出的文件,dd if=/dev/sd |gzip >/.gz
逻辑卷 pvcreate /dev/sdc pvs、pvdisplay vgcreate vg0 /dev/sd{a,b} vgs、vgdisplay lvcreate -n mysql -L 4G vg0 lvs、lvdisplay mkfs.xfs /dev/vg0/mysql vgextend vg0 /dev/sdd lvextend -l -r +100%free /dev/sde pvmove /dev/sda vgreduce vg1 /dev/sdc pvremove /dev/sdc vgrename
跨主机迁移卷组 umount 、vgchange -an vgexport vgimport vgchange -ay 、 mount
查看端口占用情况 [root@localhost ~] [root@localhost ~]
TAB的补全包 bash-completion
查看本机DNS [root@localhost ~]
抓包 [root@localhost ~] [root@localhost ~]
系统管理工具 pstree、ps、pidof、top、htop、glances、pmap、vmstat、dstat、nohub、iotop、nload、lsof
查看所有网络连接 [root@localhost ~] [root@localhost ~] shell脚本练习 [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~] [root@localhost ~]
更改文件名 [root@localhost ~]
DIR=/root/testdir cd $DIR for i in *;do j=`echo $i|sed -rn 's/(.*)\..*/\1/p'` mv $i ${j}.log done
批量创建用户 [root@localhost ~]
. /etc/init.d/functions if [ "$1" = '-c' ];then for USER in `cat /tmp/name.txt`;do if id $USER &> /dev/null;then action "$USER is exist" false else useradd $USER echo $USER | passwd --stdin $USER &> /dev/null action "$USER is created" true fi done elif [ "$1" = '-r' ];then for USER in `cat /tmp/name.txt`;do userdel -r $USER &> /dev/null action "$USER is remove" true done else echo "Usage: `basename $0` -c | -r " fi [root@localhost ~] [root@localhost ~]
棋盘 [root@localhost ~]
i=1 BEGIN='\e[1;' RED=41m YELL=44m while [ $i -le 8 ];do j=1 while [ $j -le 4 ]; do if [ $((i%2)) -eq 0 ];then echo -e "${BEGIN}${RED} ${BEGIN}${YELL} \c" else echo -e "${BEGIN}${YELL} ${BEGIN}${RED} \c" fi
let j++ done echo -e "\e[0m" let i++ done
[root@localhost ~]
i=1 BEGIN='\e[1;' RED=41m YELL=44m flag=true while [ $i -le 8 ];do if $flag;then j=1 while [ $j -le 4 ]; do echo -e "${BEGIN}${RED} ${BEGIN}${YELL} \c" let j++ done flag=false else j=1 while [ $j -le 4 ];do echo -e "${BEGIN}${YELL} ${BEGIN}${RED} \c" let j++ done flag=true fi echo -e "\e[0m" let i++ done
[root@localhost ~]
red(){ echo -e "\033[41m \033[0m\c" } yel(){ echo -e "\033[43m \033[0m\c" } redyel(){ for ((i=1;i<=4;i++));do for ((j=1;j<=4;j++));do red;yel done echo done } yelred(){ for ((i=1;i<=4;i++));do for ((j=1;j<=4;j++));do yel;red done echo done } for ((line=1;line<=8;line++));do [ $[$line%2] -eq 0 ] && redyel || yelred done
[root@localhost ~]
red(){ echo -e "\033[41m \033[0m\c" } yel(){ echo -e "\033[43m \033[0m\c" } redyel(){ for ((i=1;i<=4;i++));do for ((j=1;j<=4;j++));do [ "$1" = "-r" ] && { yel;red; } || { red;yel; } done echo done } for ((line=1;line<=8;line++));do [ $[$line%2] -eq 0 ] && redyel || redyel -r done
监控httpd [root@localhost ~] [root@localhost ~]
SLEEPTIME=30 SERVICE=httpd LOG=/var/log/monitor_$SERVICE.log while true;do if killall -0 $SERVICE &>/dev/null;then true else systemctl restart $SERVICE echo "AT `date +'%F %T'` $SERVICE is restart" | tee -a $LOG | mail -s warning root fi sleep $SLEEPTIME done
10位随机数字挑出最大和最小值
for ((i=0;i<10;i++));do N=$RANDOM echo -e "$N \c" if [ $i -eq 0 ];then MAX=$N MIN=$N else [ $N -gt $MAX ]&& MAX=$N [ $N -lt $MIN ]&& MIN=$N fi done echo echo MAX=$MAX,MIN=$MIN
使用shift创建用户
if [ -z "$1" ];then echo "Usage: `basename $0` username ..." exit fi while [ "$1" ];do if id $1 &>/dev/null;then echo $1 is exist else useradd $1 echo $1 is created fi shift done
使用while创建用户
while read name;do useradd $name echo $name is created done < /tmp/name.txt
cat /tmp/name.txt|while read name;do useradd $name echo $name is create done
判断分区使用率是否大于80 [root@localhost ~]
df| while read line ;do DEVICE=`sed -rn '/^\/dev\/sd/s/(^[^ ]+).* ([0-9]+)%.*/\1/p'` USE=`df|sed -rn '/^\/dev\/sd/s/(^[^ ]+).* ([0-9]+)%.*/\2/p'` if [ $USE -gt 80 ];then wall $DEVICE will be full,USE:$USE fi done
扫描网络中主机 [root@localhost ~]
NET=192.168.0 for HOST in {1..254};do { ping -c1 -W1 $NET.$HOST &> /dev/null && echo $NET.$HOST is up || echo $NET.$HOST is down; } &
done wait echo "scan host is finished"
NET=172.22 for SUBNET in {0..255};do for HOST in {1..254};do { ping -c1 -W1 $NET.$SUBNET.$HOST &> /dev/null && echo $NET.$SUBNET.$HOST is up; } &
done wait done echo "scan host is finished"
拒绝频繁访问
sed -rn '/^ESTAB/s/.*([0-9.]+):[0-9]+.*$/\1/p'ss.log|sort|uniq -c|while read times ip;do if [ $time -gt 10 ];then iptables -A INPUT -s $ip -j REJECT fi
PS3="please choose a number: " select menu in back clean config quit;do case $menu in back) ./backup.sh ;; clean) ./clean.sh ;; config) ./config.sh ;; quit) break ;; *) echo input false esac done echo "完成"
使用数组查找随机数字中最大和最小值
declare -a ARR for((i=0;i<10;i++));do ARR[$i]=$RANDOM if [ $i -eq 0 ];then MAX=${ARR[$i]} MIN=${ARR[$i]} else [ ${ARR[$i]} -gt $MAX ] && MAX=${ARR[$i]} [ ${ARR[$i]} -lt $MIN ] && MIN=${ARR[$i]}
fi done echo all random are ${ARR[@]} echo MAX=$MAX,MIN=$MIN /var/log/btmp登录失败的信息 lastb命令查看 lastb -f 查看非本机的文件
创建临时文件mktemp mktemp file.nameXXX(3个XXX以上) 创建目录mktemp -d
安装复制文件install 命令 install /etc/issue /data/issue.bak -d复制目录 install -m 770 -u xing -g bin /etc/issue /data/issue.bak
expect自动化交互式操作 yum -y install expect expect -c 从命令中执行expect脚本,默认expect是交互执行的,-d可以输出调试信息
expect中相关命令:spawn启动新的进程、send用于向进程发送字符串、expect从进程接受字符串、interact允许用户交互 exp_continue匹配多个字符串在执行动作后加此命令
[root@localhost ~]
ip=$1 user=$2 password=$3 expect <<EOF set timeout 20 spawn ssh $user@$ip expect { "yes/no" { send "yes\n";exp_continue } "password" { send "$password\n" } } expect "]#" { send "useradd hehe\n" } expect "]#" { send "echo magedu |passwd --stdin hehe\n" } expect "]#" { send "exit\n" } expect eof EOF
centos6启动流程 加载BIOS的硬件信息,获取启动设备 读取第一个启动设备MBR的引导加载程序grub的启动信息 加载内核,读取分区驱动模块 启动第一个进程程序init init启动程序执行/etc/rc.d/rc/sysinit文件 启动核心的外挂模式 init执行运行各个批处理文件scripts init执行/etc/rc.d/rc.local 执行/bin/login程序,等待登录
centos7启动流程 引导顺序UEFI或BIOS初始化,运行POST开机自检 选择启动设备 引导装载程序,grub2 加载装载程序的配置文件:/etc/grub.d/ /etc/default/grub /boot/gtub2/grub.cfg 加载initramfs驱动模块 加载内核选项 内核初始化,systemd 执行initrd。target所有单元,包括/etc/fstab 从initramfs根文件系统切换到磁盘根目录 systemd执行默认target配置,配置文件/etc/systemd/system/default.target systemd执行sysinit.target初始化系统及basic.target准备操作系统 systemd启动multi-user.target下的本机与服务器服务 systemd执行multi-user.target下的/etc/rc.d/rc.local Systemd执行multi-user.target下的getty.target及登录服务 systemd执行graphical需要的
内核参数 sysctl -a 显示当前所有可用的内核参数 sysctl kernel.hostname 读取kernel.hostname参数 sysctl -w kernel.hostname=abc 把hostname改为abc ls -Z 查看文件的selinux安全标签
破解口令 centos7:启动项e键修改 ---> 找到linux16内核这一项 ---> 加入rd.break,ctrl+x启动 ---> mount -o rw,remount /sysroot chroot /sysroot passwd 修改密码 如果selinux启动状态,则需要touch /.autorelabel exit reboot
centos6:启动时按a输入1运行级别 进入系统修改密码 判断内部外部 type COMMAND
取路径基名 [root@localhost ~] network-scripts
取路径名 [root@localhost ~] /etc/sysconfig
查看文件状态 [root@localhost ~] File: ‘/etc/passwd’ Size: 2241 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 33981052 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-08-16 20:37:24.256360238 +0800 Modify: 2019-08-16 20:37:24.247360238 +0800 Change: 2019-08-16 20:37:24.247360238 +0800 Birth: -
rename rename test good cttest
符号链接和硬链接的区别 软连接: 1、一个符号链接指向另一个文件 2、一个符号链接的内容是它引用文件的名称 3、可以对目录进行 4、可以跨分区 5、指向的是另一个文件的路径 6、其大小为指向的路径字符串的长度 7、不增加或减少目标文件inode的引用计数 硬链接: 1、创建硬链接会增加额外的记录项以引用文件 2、对应于同一文件系统上一个物理文件 3、每个目录引用相同的inode号,同步更新 4、创建时链接数递增 5、删除文件时,rm命令递减计数的连接 文件要存在,至少有一个连接数,当连接数为零0,改文件被删除 6、不能跨分区,不能针对目录
接入新硬盘 1、fdisk格式化分区 2、mkfs.xfs制作文件系统 3、mount挂载 4、编辑fstab
标准I/O和管道 1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中 [root@localhost ~]
2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中 [root@localhost ~] [root@localhost ~]
3、发送系统邮件 [root@localhost ~] > Hello,I am `whoami`. > EOF
4、保存linux历史命令并显示命令操作时间 /etc/profile export HISTTIMEFORMAT="%F %T"
创建⽤户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为 "Gentoo Distribution" [root@localhost ~]
nmap扫描 [root@localhost ~] 过滤出IP [root@localhost ~]
简述Raid0、Raid1、Raid5、Raid10的区别 Raid0: 连续的分割数据并并行地读写于多个磁盘上。因此具有很高的数据传输,但没有数据冗余,没有提供数据可靠性 如果一个磁盘失效,将影响整个数据。因此RAID0不可应用于需要数据高可用性的关键应用。 最少由2块磁盘组成,每块都能存储数据。
Raid1: 通过数据镜像实现数据冗余,在两队分离的磁盘上产生互为备份的数据。可以提高读的性能,是磁盘阵列中费用 最高的,但是提供了最好的数据可用性。当一个磁盘失效,系统可以自动地交换到镜像磁盘上。最少由2块磁盘组成, 只有一半的磁盘能存储数据。
Raid5: 所有磁盘轮流充当校验盘,有容错能力,最多准许1块磁盘损坏。最少由3块磁盘组成,充当校验盘的不分磁盘 不能存储数据,实际容量是n-1/n
Raid10: 先两两组成RAID1,再组合成RAID0.每组镜像最多损坏一个磁盘,有容错能力。最少由4块磁盘组成,只有一半 的磁盘能存储数据。
简述Linux下常用的文件系统有哪些,有什么区别 EXT3: 1、最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件 2、EXT3目前只支持32000个子目录 3、EXT3文件系统使用32位空间记录块数量和i-节点数量 4、当数据写入到EXT3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块 EXT4: 1、EXT4是Linux系统下的日志文件系统,是EXT3文件系统的后继版本 2、EXT4的文件系统容量达到1EB,而文件容量则达到16TB 3、理论上支持无限数量的子目录 4、EXT4文件系统使用64位空间记录块数量和i-节点数量 5、EXT4的多块分配器支持一次调用分配多个数据库
XFS: 1、根据所记录的日志在很短的时间内迅速恢复磁盘文件内容 2、采用优化算法,日志记录对整体文件操作影响非常小 3、是一个全64-bit的文件系统,他可以支持上百万T字节的存储空间 4、能以接近裸设备I/O的性能存储数据
Read-only File system 系统没有正常关机,导致虚拟磁盘出现文件系统错误 解决方法: 重启系统后使用root进入单用户模式,运行fsck.ext4 -y /dev/sda
Inode耗尽导致故障 find /tmp -type f -exec rm -rf {} \; find /home -type f -size 0 -exec rm -rf {} \;
检测并修复/dev/hda5 e2fsck -p /dev/hda5
修复文件系统 fsck -y /home
/etc/fstab的字段含义 分区的标签 设备的挂载点 磁盘文件系统的格式 文件系统的参数 代表每天进行备份的操作 以fsck检验我们的系统是否为完整,1级别检验完成之后进行检验 交换机的端口模式有几种? Access类型端口:只能属于1个VLAN,一般用于连接计算机端口 Trunk类型端口:可以允许多个VLAN通过,可以接受和发送多个VLAN报文,一般用于交换机与交换机相关的接口 Hybrid类型端口:可以允许多个VLAN通过,可以接受和发送多个VLAN报文,可以用于交换机间连接,也可以用于连接用户计算机
简述有类于无类路由选择协议的区别? 1、有类的路由不会识别子网的信息 2、无类的路由协议不会根据A B C类来识别,根据子网掩码的长度来区分网段 3、有类的路由协议只会传送网络前缀(网络地址),但是不会包含子网掩码。 4、无类路由协议传输网络前缀(网络地址)的同时也会传输子网掩码,所以它支持VLSM 从管理距离上看,无类的路由协议一般在子网中使用,所以距离较小
简述stp的作用和工作原理 STP(Spanning Tree Protocol)是生成树协议的英文缩写。该协议可应用于在网络中建立树形拓扑,消除网络中的二层环路, 并可以通过一定的方法实现路径冗余,但不是一定可以实现路径冗余。 原理:通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元,来确定网络拓扑结构。
tcp协议和udp协议对比的优缺点 1、TCP面向连接;UDP是无连接,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错、不丢失、不重复,且按序到达; UDP尽最大努力交付,不保证可靠交付 3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。 4、每一条TCP连接只能是点到点;UDP支持一对一,一对多,多对一和多对多的交互同喜。 5、TCP对系统资源要求较多,UDP对系统资源要求较少
UDP以其简单、传输快的优势,在越来越多场景下取代了TCP 1、网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性 2、TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系 统协议栈中,极难对其进行改进。
简述tcp三次握手和四次挥手过程及各过程中客户端和服务器端的状态 三次握手: 客户端向服务器端发送SYN包,客户端进入SYN_SEND状态。 服务器端收到客户端发送的包返回ACK+SYN包,服务器端进入SYN_RECV状态。 客户端收到服务器端返回的包再发回ACK包,客户端进入ESTABLISHED状态,服务器端收到包也进入ESTABLISHED状态。
四次挥手: 客户端发送FIN包询问服务器端是否能断开,客户端进入FIN_WAIT_1状态。 服务器端收到客户端发送的包并返回ACK包,服务器端进入CLOSE_WAIT状态 服务器端准备好断开后,发送FIN包给客户端,服务器端进入LAST_ACK状态 客户端收到服务器端发送的包后返回ACK包,客户端进入TIME_WAIT状态,服务器端收到包后进入CLOSED状态
端口转发 iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp --dport 80 -j DNAT --todestination 192.168.16.1:8080;
判断是否有服务器被黑客入侵,如何排查?如何防护 1、检查系统组及用户。如果发现administrators组内添加了一个admin$或类似的用户 2、检查管理员账户是否存在异常登录和注销记录 3、检查服务器是否存在异常启动项
网站服务器遭受入侵 1、临时关闭网站 2、分析网站受损情况 3、检测漏洞并打补丁 4、木马病毒清除 5、经常备份数据
如何防止DDOS攻击?如被攻击需要做哪些处理 1、定期扫描,要定期扫描现有网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时清理 2、在骨干节点配置专业的抗拒服务设备。这类产品在国内应用较为广泛有绿盟、中新金盾。 3、用足够的机器承受黑客攻击。如果用户拥有足够的容量和足够的资金给黑客攻击,在它不断访问用户 、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力只招了。 4、充分利用网络设备保护网络资源。所谓网络设备是指路由器、防火墙等负载均衡设备,他们可将网络有效的保护起来 5、过滤不必要的服务和端口 6、检查访问者的来源 7、过滤所有RFC1918 IP地址。RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0和 172.16.。。。。
显示全部进程 ps aux
查看tomcat的进程状态 ps -ef|grep tomcat
查看端口是否已经启动 netstat -anp|grep 端口
查看80端口是什么进程占用的 lsof -i:80
简述nslookup、dig、top、traceroute命令各自的作用 nslookup:测网络中DNS服务器是否能正确实现域名解析的命令行工具 dig:dns查询工具 top:实时查看系统资源占用情况 traceroute:追踪数据包在网络上的传输时的全部路径
查看cpu、内存、io使用情况 top dstat sar free iostat top动态实时显示系统性能 vmstat静态显示系统性能
统计establish状态的连接数
常用的查看服务器性能命令 top htop iotop uptime free iostat dstat vmstat mpstat glances
crontab任务计划 周三 7-9点每5分钟执行一次a.sh crontab -e */5 7-9 * * 3 /bin/bash a.sh
每周一、三、五凌晨1点自动重启 crontab -e 00 1 * * 1,3,5 /sbin/reboot
每天早上6点到12点,每隔2小时执行一次/usr/bin/httpd.sh crontab -e 00 6-12/2 * * * /usr/bin/httpd.sh
/var/spoll/cron/root
每周六 23点同步时间 crontab -e 00 23 * * 6 ntpdate ntp3.aliyun.com
glances命令获取远程主机的系统信息 1、在远程主机上开启glances代理 host:192.168.3.10 [root@localhost ~]
2、在本地监控远程主机的系统信息 host:192.168.3.20 [root@localhost ~]
每周工作日1:30,执行 30 1 * * 1-5 /root/
每两小时执行 0 */2 * * * /bin/
工作日时间,每十分钟执行一次 */10 * * * 1-5 /bin/bash 判断/var/⽬录下所有⽂件的类型 root@centos7 ~]
for i in $(find /var) ;do if [ -b $i ];then echo "$i是块设备" elif [ -c $i ] ;then echo "$i是字符设备" elif [ -f $i ];then echo "$i是普通文件" elif [ -h $i ];then echo "$i是符号链接文件" elif [ -p $i ];then echo "$i是管道文件" elif [ -S $i ];then echo "$i是套接字文件" elif [ -d $i ];then echo "$i是目录文件" else echo "文件或目录不存在" fi done exit 0
添加10个用户user1-user10,密码为8位随机字符 [root@centos7 ~]
for n in $(seq 1 10);do name=user$n useradd "$name" echo "$(tr -cd [[:alnum:]\!_#@] < /dev/urandom |head -c 8)"|passwd --stdin $name &> /dev/null echo "user creation" done exit 0
⽬录下分别有多个以K开头和以S开头的⽂件;分别读取每个⽂件, 以K开头的输出为⽂件加stop,以S开头的输出为⽂件名加start, [root@centos7 ~]
for i in `ls /data/` ;do [[ "$i" =~ ^k.* ]] && echo "$i stop" [[ "$i" =~ ^s.* ]] && echo "$i start" done
for i in `ls /data/|egrep -i "^k.*"`;do echo "$i stop" done
for j in `ls /data/|egrep -i "^s.*"`;do echo "$j start" done
编写脚本,提示输入正整数n的值,计算总和 [root@centos7 ~]
read -p "please input a positive integer:" n i=1 sum=0 for i in `seq 1 $n`;do let sum+=i done echo "sum is $sum" lsmod 查看已加载的模块 modinfo 显示kernel模块的信息 modprobe 加载某个模块 biosdecode BIOS版本 dmidecode | grep 'Product Name' dmidecode |grep 'Serial Number' ethtool -i eth0
Linux运行级别 0: 系统停机(关机)模式,系统默认运行级别不能设置为0,否则不能正常启动,一开机就自动关机。 1:单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。 2:多用户模式,没有NFS网络支持。 3:完整的多用户文本模式,有NFS,登陆后进入控制台命令行模式。 4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池 用尽时,可以切换到这个模式来做一些设置。 5:图形化模式,登陆后进入图形GUI模式或GNOME、KDE图形化界面,如X Window系统。 6:重启模式,默认运行级别不能设为6,否则不能正常启动,就会一直开机重启开机重启。
MBR MBR(Master Boot Recorder),我们称之为主引导记录。BIOS是怎样寻找可启动设备的呢?我们知 道在分区时,硬盘的第一块扇区512个字节就是存放的MBR,如果该设备是可启动设备,那么该扇区的 最后两个字节肯定是55/AA,所以此时在寻找可启动设备时,如果发现该设备的最后两个字节是这个, 那么该设备就是可启动设备。BIOS在找到可启动设备以后就会执行其引导代码,因为MBR占据了第一块 扇区的512字节,分区表占用了 16*4 =64字节,再加上最后两个标志字节,所以MBR的引导代码就是 MBR的前446个字节,当然这446个字节太小了,并不能完成整个操作系统的引导程序,所以这446个字 节里面可能存放的就是启动引导程序的一些代码。
GRUB GRUB是引导加载程序,将引导操作系统,启动引导器是计算机启动过程中运行的第一个真正的软件, 计算机启动时在通过BISO自检后读取并运行引导介质上最前面的扇区即硬盘主引导扇区(MBR)中的启 动引导器程序, 这里的扇区中:MBR占据了第一块扇区的512字节,但其实际只占用了其中的446个字 节,另外的64个字节交给了DPT(Disk Partition Table硬盘分区表),最后两个字节“55,AA”是 分区的结束标志。启动引导器在负责加载启动硬盘分区中的操作系统。如果启动引导器不能正常工 作,将导致操作系统不能正常启动,从而整个计算机瘫痪。通常,每个操作系统在安装过程中都要将 自带的启动器写在硬盘(MBR),以便能过进行自身的引导。
|