linux脚本

Linux学习笔记

我只是一个虾纸丫 提交于 2020-03-04 12:58:47
Linux学习文档 简介 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。 Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 系统启动过程 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。 init程序的类型: SysV: init, CentOS 5之前, 配置文件: /etc/inittab。 Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。 Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。 内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。 运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service)

python——复制目录结构小脚本

别来无恙 提交于 2020-03-04 09:21:30
引言   有个需要,需要把某个目录下的目录结构进行复制,不要文件,当目录结构很少的时候可以手工去建立,当目录结构复杂,目录层次很深,目录很多的时候,这个时候要是还是手动去建立的话,实在不是一种好的方法,弄不好会死人的。写一个python脚本来处理吧。 首先了解   写python脚本前,先了解几个东西 #!/usr/bin/python 这个东西写过脚本的人都知道,用来标明该脚本的执行器,类似的还有 #!/bin/bash 通过bash来执行 #!/usr/local/php/bin/php 通过php执行器来执行 # -*- coding: utf-8 -*- 这个是设置脚本的编码格式,不然非英文可能会出现乱码 匿名函数lambda #lambda很好用,创建匿名函数很方便 g = lambda x,y : x+y g(3,5) #返回8 匿名函数分为四部分,标识 lambda,分号 :,参数 x,y,操作 x+y 除了这个之外,还有函数map、filter一个进行映射,一个进行过滤 __name__=="__main__" 一个文件就是一个模块,在python中每个模块都有一个__name__属性,属性的值取决于如何使用该模块,一般有两种使用方式,直接在命令行运行,这个时候__name__值为__main__,当import使用的时候,__name__值就是当前模块的名称

Shell编程基础

风流意气都作罢 提交于 2020-03-04 07:19:09
写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单、灵活、高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作变得容易、简单、高效 shell脚本可移植性好,在unix/linux系统中可灵活移植,几乎不用任何设置就能正常运行 shell脚本可轻松方便读取和修改源代码,不需要编译 掌握shell可以帮你解决一些故障问题,比如脚本引起的故障问题 掌握shell是一个中级以上系统工程师必需要会的 掌握shell是你系统管理进阶的必经之路 掌握shell是你面试更高级职位的一块敲门砖 那什么时候不使用Shell 脚本? 资源密集型的任务,尤其在需要考虑效率时(比如排序,hash 等) 需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++或FORTRAN 来处理) 有跨平台移植需求(一般使用C 或Java) 复杂的应用,在必须使用结构化编程的时候(需要变量的类型检查,函数原型,等等) 对于影响系统全局性的关键任务应用。 对于安全有很高要求的任务,比如你需要一个健壮的系统来防止入侵,破解,恶意破坏等等. 项目由连串的依赖的各个部分组成。 需要大规模的文件操作 需要多维数组的支持 需要数据结构的支持,比如链表或数等数据结构 需要产生或操作图形化界面 GUI 需要直接操作系统硬件 需要 I/O

Shell脚本——特殊符号

∥☆過路亽.° 提交于 2020-03-04 05:26:36
1. # 井号(pound) 脚本文件运行时,使用的解释器。 #!/bin/sh 其他时候表示注释。 # This is a comment. 2. ~ 波浪号(tilde) 表示当前用户使用的home目录,也可以直接在符号后加上某帐户的名称。 # cd ~ # cd ~user 也可以当成是路径的一部份。 # cd ~/bin ~+代表当前的工作目录,和内建指令 pwd 的作用是相同的。 # pwd /home/support # echo ~+ /home/support 3. ; 分号(semicolon) 在 shell 中,表示连续指令。 # cd ~/backup ; mkdir startup ; cp ~/.* startup/. 4. ;; 连续分号(terminator) 专用在 case 的选项,表示break。 5. . 点号(dot) .代表当前目录,..代表上层目录。 # cd .. 如果文件名称以.开头,表示该文件是隐藏文件。用 "ls -a"才会显示。 在模式匹配中,.代表匹配一个字元。 "./"在当前目录下,用/bin/sh运行可执行的shell文件。 # ./t.sh HelloWorld ". filename",把文件内容输出到当前环境变量中。 # . /home/testscript.sh 6 'string' 单引号(single

/etc/rc.d/init.d自启动程序说明

ぐ巨炮叔叔 提交于 2020-03-03 21:29:01
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 本文中假设inittab中设置的init tree为: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d /etc/rc.d/init.d 目录 1. 关于linux的启动 2. 关于rc.d 3. 启动脚本示例 4. 关于rc.local 5. 关于bash启动脚本 6. 关于开机程序的自动启动 1. 关于linux的启动 init是所有进程的顶层 init读取/etc/inittab,执行rc.sysinit脚本 (注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中) rc.sysinit脚本作了很多工作: init $PATH config network start swap function set hostname check root file system, repair if needed check root space .... rc.sysinit根据inittab执行rc?.d脚本 linux是多用户系统,getty是多用户与单用户的分水岭

转:rc.local自启动学习

混江龙づ霸主 提交于 2020-03-03 21:28:29
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 本文中假设inittab中设置的init tree为: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d /etc/rc.d/init.d 目录 1. 关于linux的启动 2. 关于rc.d 3. 启动脚本示例 4. 关于rc.local 5. 关于bash启动脚本 6. 关于开机程序的自动启动 1. 关于linux的启动 init是所有进程的顶层 init读取/etc/inittab,执行rc.sysinit脚本 (注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中) rc.sysinit脚本作了很多工作: init $PATH config network start swap function set hostname check root file system, repair if needed check root space .... rc.sysinit根据inittab执行rc?.d脚本 linux是多用户系统,getty是多用户与单用户的分水岭

rc.local自启动学习

我是研究僧i 提交于 2020-03-03 21:28:11
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 本文中假设inittab中设置的init tree为: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d /etc/rc.d/init.d 目录 1. 关于linux的启动 2. 关于rc.d 3. 启动脚本示例 4. 关于rc.local 5. 关于bash启动脚本 6. 关于开机程序的自动启动 1. 关于linux的启动 init是所有进程的顶层 init读取/etc/inittab,执行rc.sysinit脚本 (注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中) rc.sysinit脚本作了很多工作: init $PATH config network start swap function set hostname check root file system, repair if needed check root space .... rc.sysinit根据inittab执行rc?.d脚本 linux是多用户系统,getty是多用户与单用户的分水岭

rc.local自启动学习

≡放荡痞女 提交于 2020-03-03 21:25:33
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 本文中假设inittab中设置的init tree为: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d /etc/rc.d/init.d 目录 1. 关于linux的启动 2. 关于rc.d 3. 启动脚本示例 4. 关于rc.local 5. 关于bash启动脚本 6. 关于开机程序的自动启动 1. 关于linux的启动 init是所有进程的顶层 init读取/etc/inittab,执行rc.sysinit脚本 (注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中) rc.sysinit脚本作了很多工作: init $PATH config network start swap function set hostname check root file system, repair if needed check root space .... rc.sysinit根据inittab执行rc?.d脚本 linux是多用户系统,getty是多用户与单用户的分水岭

一份360的运维面试题

只愿长相守 提交于 2020-03-02 09:16:46
公司名称:奇虎360 招聘职位:运维工程师 职位需求: 1、精通FreeBSD/Linux系统安装配置和系统参数优化设置。 2、三年以上IDC、服务器运维经验。 3、精通apache、nginx等web服务器和参数的配置优化。 4、熟悉MySQL数据库优化者佳。 5、熟悉cisco、H3C路由器和交换机配置者佳。 6、工作有条理,工作习惯良好,有一定的故障处理能力。 7、可承受较大的工作压力,对待工作认真负责,有较强的工作责任心。 以下是面试题: 1、写一个脚本查找最后创建时间是3天前,后缀是*.log的文件并删除。 2、写一个脚本将某目录下大于100k的文件移动至/tmp下。 3、写一个脚本将数据库备份并打包至远程服务器192.168.1.1 /backup目录下。 4、写一个防火墙配置脚本,只允许远程主机访问本机的80端口。 5、写一个脚本进行nginx日志统计,得到访问ip最多的前10个(nginx日志路径:/home/logs/nginx/default/access.log)。 6、写出下列命令的含义 (1)MaxKeepAliveRequests 100 (2)Options FollowSymLinks Order Deny Allow Deny from all Allow from 192.168.1.1 7、写一个脚本把指定文件里的/usr

被关系数据库建表和升级折磨?因为你没用大道至简的Flyway

余生颓废 提交于 2020-03-01 04:12:15
前言 六年前Flyway已经是我TDD开发、持续集成工具栈中的重要一环了,作为早期用户,我早就应该为它做个”广告“,可惜对创业者来说时间太宝贵了,现在趁着疫情才有机会在家里总结点东西。虽然现在Flyway已经是Spring-Boot集成工具的一环,但是我发现还是少有人了解它的威力。 关系数据库之殇 你在使用关系数据库的过程中,是否曾经遇到以下情况,甚至因此一度想要放弃或已经放弃关系数据库? 场景一:开发环境,多人共用一套数据库 开发正调试着,忽然代码报错“XX字段不存在”:谁TMD又把表结构给改了… 场景二:开发环境,每个人各自搭建自己的数据库 开发完一个功能,提交代码、更新,重启准备调试下,代码报错“XX表不存在” 吼一嗓子:谁又改表结构了?什么?每个人都要把xxx.sql执行一遍? ... 新员工:我要搭一套开发数据库,到底应该执行哪些SQL脚本? 场景三:开发转测试 测试:你看这个功能是不是有个Bug? 开发1:哦,你要执行一下这个SQL脚本。 测试:嗯,现在没问题了,但是怎么保证这个脚本没有Bug,我能再重现、测试一遍吗? 开发:额~,你重新搭一遍数据库吧... 场景四:搭建一套演示环境 执行SQL脚本1、SQL脚本2、SQL脚本3…启动服务失败! 什么?这个脚本N是测试版本的,war包是已经上线的版本? 删库再来一遍... 场景五:放弃关系数据库的坑 受不了关系数据库了