Linux任务计划cron:

    cron任务计划功能的操作都是通过crontab这个命令来完成的,crontab命令能管理用户需要周期性执行的任务。

    crontab常用选项有:

        -u 指定某用户,不加-u选项表示当前用户

        -e 制定计划任务

        -l 列出计划任务

        -r 删除计划任务

    查看一下crontab命令添加计划任务的说明:

    image.png

    如上图最后一行所示:从左到右,依次是:分  时  日  月  周  user 命令;

     输入命令crontab -e   添加计划任务:30 2 * * 3 echo "" > /root/cron.log     -->表示每周三的凌晨2:30 执行命令echo "" >/root/cron,log

    image.png

    练习题:

        ①每天凌晨1点20分清除/var/log/slow.log这个文件         --> 20 1 * * *  echo "" >/var/log/slow.log

        ②每周日3点执行 “/bin/sh /usr/local/sbin/backup.sh”    --> 0 3 * * 0  /bin/sh /usr/local/sbin/backup.sh

        ③每月14号4点10分执行 “/bin/sh /usr/local/sbin/backup_month.sh”    --> 10 4 14 * *  /bin/sh /usr/local/sbin/backup_month.sh

        ④每隔8小时执行 “ntpdate time.windows.com”    --> 0 */8 * * *  ntpdate time.windows.com

        ⑤每天的1点,12点,18点执行 “/bin/sh /usr/local/sbin/test.sh”    --> 0 1,12,18 * *  /bin/sh /usr/local/sbin/test.sh

        ⑥每天的9点到18点执行 “/bin/sh /usr/local/sbin/test2.sh”    --> 0 9-18 * * *  /bin/sh /usr/local/sbin/test2.sh

    启动cron服务:systemctl start crond.service

chkconfig工具:

    chkconfig服务管理工具

    chkconfig --list 列出所有的服务以及每个级别是否开启

    image.png

    这里的级别(0,1,2,3,4,5,6)就是 /etc/inittab 里面的那几个启动级别了。

    chkconfig --level 3 network off    这是在级别3下关闭network服务

    chkconfig --level 345 network off    这是在级别345下关闭network服务

    chkconfig --del network    这是移除系统服务的

    chkconfig --add network    把network服务加入到系统服务,可以使用service network start 这样的形式启动。

systemd管理服务:

    systemctl list-units --all --type=service  //列出系统所有的服务

     几个常用的服务相关的命令

     systemctl enable crond.service //让服务开机启动

     systemctl disable crond //不让开机启动

     systemctl status crond //查看状态

     systemctl stop crond //停止服务

     systemctl start crond //启动服务

     systemctl restart crond //重启服务

     systemctl is-enabled crond //检查服务是否开机启动

unit介绍:

    ls /usr/lib/systemd/system //系统所有unit,分为以下类型

    service 系统服务 

    target 多个unit组成的组

    device 硬件设备

    mount 文件系统挂载点

    automount 自动挂载点

    path 文件或路径

    scope 不是由systemd启动的外部进程

    slice 进程组

    snapshot systemd快照

    socket 进程间通信套接字

    swap  swap文件

    timer 定时器

unit相关的命令:

    systemctl list-units //列出正在运行的unit

    systemctl list-units --all //列出所有,包括失败的或者inactive的

    systemctl list-units --all --state=inactive //列出inactive的unit

    systemctl list-units --type=service//列出状态为active的service

    systemctl is-active crond.service //查看某个服务是否为active

target介绍:

    系统为了方便管理用target来管理unit

    systemctl list-unit-files --type=target      //查看当前系统的所有target

    systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit

    systemctl get-default //查看系统默认的target

    systemctl set-default multi-user.target  //设置默认的target

service、unit和target之间的关系:

    一个service属于一种类型的unit

    多个unit组成了一个target

    一个target里面包含了多个service;可以查看cat /usr/lib/systemd/system/sshd.service //看[install]部分

rsync工具介绍:

    rsync -av /etc/passwd /tmp/1.txt

    rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt 

    rsync格式(SRC:源目录/文件;DEST:目标目录/文件)

    rsync [OPTION] … SRC   DEST

    rsync [OPTION] … SRC   [user@]host:DEST    //如果不加user@,默认当前用户

    rsync [OPTION] … [user@]host:SRC   DEST

    rsync [OPTION] … SRC   [user@]host::DEST

    rsync [OPTION] … [user@]host::SRC   DEST

rsync常用选项:

     -a 包含-rtplgoD,也可以-a--no-l,表示-rtpgoD,少了-l参数

     -r 同步目录时要加上,类似cp时的-r选项

     -v 同步时显示一些信息,让我们知道同步的过程

     -l 保留软连接

     -L 加上该选项后,同步软链接时会把源文件给同步

     -p 保持文件的权限属性

     -o 保持文件的属主

     -g 保持文件的属组

     -D 保持设备文件信息

     -t 保持文件的时间属性

     --delete 删除DEST中SRC没有的文件

     --exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步

     -P 显示同步过程,比如速率,比-v更加详细

     -u 加上该选项后,如果DEST中的文件比SRC新,则不同步

     -z 传输时压缩

rsync同步:

    rsync通过ssh方式同步

     rsync -av test1/ 192.168.133.132:/tmp/test2/

     rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/

     rsync 通过服务的方式同步

     要编辑配置文件/etc/rsyncd.conf

     启动服务rsync --daemon

     格式:rsync -av test1/ 192.168.133.130::module/dir/


    rsyncd.conf样例

port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.133.130
[test]
path=/root/rsync
use chroot=true
max connections=4
read only=no
list=true
uid=root
gid=root
auth users=test
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.133.132 1.1.1.1 2.2.2.2  192.168.133.0/24

rsyncd.conf配置文件详解 

     port:指定在哪个端口启动rsyncd服务,默认是873端口。

     log file:指定日志文件。

     pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等进程管理操作。

     address:指定启动rsyncd服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服务,如果不指定该参数,默认是在全部IP上启动。

     []:指定模块名,里面内容自定义。

     path:指定数据存放的路径。

     use chroot true|false:表示在传输文件前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true,如果你的数据当中有软连接文件,阿铭建议你设置成false。   

     max connections:指定最大的连接数,默认是0,即没有限制。

     read only ture|false:如果为true,则不能上传到该模块指定的路径下。

     list:表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐藏。

     uid/gid:指定传输文件时以哪个用户/组的身份传输。

     auth users:指定传输时要使用的用户名。

     secrets file:指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。注意该密码文件的权限一定要是600。格式:用户名:密码

     hosts allow:表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用空格隔开。 

     当设置了auth users和secrets file后,客户端连服务端也需要用用户名密码了,若想在命令行中带上密码,可以设定一个密码文件

     rsync -avL test@192.168.133.130::test/test1/  /tmp/test8/ --password-file=/etc/pass 

     其中/etc/pass内容就是一个密码,权限要改为600

Linux系统日志:

    日志主要的功能有:审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。我们可以通过查看日志的形式追查发生错误的原因。

    日志文件var/log/message, 是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。   

     /etc/logrotate.conf 日志切割配置文件(默认一周一次)

     参考https://my.oschina.net/u/2000675/blog/908189 

    dmesg命令:可以显示系统的启动信息,如果你的某个硬件有问题(比如说网卡)用这个命令也是可以看到的;调用的文件为/var/log/dmesg日志文件

    image.png

    last命令,调用的文件/var/log/wtmp

    last命令用来查看登录Linux历史信息,从左至右依次为账户名称、登录终端、登录客户端ip、登录日期及时长

    image.png

    lastb命令查看登录失败的用户,对应的文件时/var/log/btmp

    /var/log/secure  该日志文件记录验证和授权等方面的信息,比如ssh登陆系统成功或者失败,都会把相关信息记录在这个日志里。

screen工具:

    有时候,我们也许会有这样的需求,要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就是中途断网或出现其他意外情况,执行的任务中断了怎么办?你可以把命令或者脚本丢到后台运行,不过也不保险。下面就介绍两种方法来避免这样的问题发生。

    (1)使用nohup

        例子:nohup sh /usr/local/sbin/sleep.sh &                nohup的作用就是不挂断地运行命令

    (2)screen工具的使用

        screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。安装yum install -y screen

        screen直接回车就进入了虚拟终端

        Ctrl +a 再按d退出该screen会话,只是退出,并没有结束。结束的话输入Ctrl +d 或者输入exit。

        screen -ls 查看虚拟终端列表

        screen -r id 进入指定的终端

        screen -S 作业名称    表示:指定screen作业的名称

        screen -r 作业名称    表示:恢复离线的screen作业