脚本-计划任务-压缩归档

一.脚本

验证用户存在不

#!/bin/bash
user=$1
while true
do
        id $user &> /dev/null
        if [ $? -eq 0 ];then
                echo "您输入的用户${user}存在!"
                exit 0
        else
                echo "您输入的用户${user}不存在"
                exit 1
        fi

done

批量添加用户

#!/bin/bash
for i in {1..100}
do
 pass=`echo "$RANDOM" | md5sum | cut -c 1-8`
 useradd user$i
 echo "$pass" | passwd --stdin user$i
 echo -e "账户: user$i \n密码:$pass" >> /root/passwd
done

二.计划任务

  1. at 一次性计划任务
    第一步:下载at服务程序
    [root@ken ~]# yum install at -y
    第二步:启动atd服务
    [root@ken ~]# systemctl restart atd
    第三步:开启自启
    [root@ken ~]# systemctl enable atd
    第四步:查看atd是否正常启动
    方法一:
    [root@ken ~]# systemctl status atd
    方法二:
    [root@ken ~]# ps aux | grep atd
    root 5299 0.0 0.0 25904 944 ? Ss 10:30 0:00 /usr/sbin/atd -f
    1.1 使用atd
    注意:确保你的系统时间是正确的!
    [root@ken ~]# date
    Sun Jun 23 10:32:22 CST 2019
    [root@ken ~]# date -s “2019-6-23 10:35:00”
    1.2 使用ntp时间服务器:
    [root@ken ~]# yum install ntp -y #下载ntp服务
    [root@ken ~]# ntpdate time1.aliyun.com #使用ntpdate进行阿里云时间同步
    1.3 使用at一次性计划任务
    例子1 10:38分的时候备份test2文件到/tmp目录下
    [root@ken ~]# at 10:38
    at> cp /root/test2 /tmp
    at> #ctrl+d进行保存
    job 1 at Sun Jun 23 10:38:00 2019
  2. 查看at计划任务
    [root@ken ~]# at -l
    1 Sun Jun 23 10:38:00 2019 a root
    [root@ken ~]# atq
    1 Sun Jun 23 10:38:00 2019 a root
    验证计划任务是否正确执行:
    [root@ken ~]# atq #如果at计划任务正确执行,这里就不会再显示计划任务了
    [root@ken ~]# ls /tmp
    test2
    1. 删除at计划任务
      [root@ken ~]# at 10:50
      at> rm -rf /*
      at>
      job 2 at Sun Jun 23 10:50:00 2019
      [root@ken ~]# atq #使用atq命令获取到计划任务的编号
      2 Sun Jun 23 10:50:00 2019 a root
      [root@ken ~]# atrm 2 #使用atrm加上计划任务编号删除计划任务
      [root@ken ~]# atq
    2. 使用周期性加护任务crond。一定要确保crond服务正在运行!
      [root@ken ~]# ps aux | grep crond
      root 631 0.0 0.1 126280 1592 ? Ss 08:17 0:00 /usr/sbin/crond -n
    3. crond使用方法:
      vim /etc/crontab
		SHELL=/bin/bash
		PATH=/sbin:/bin:/usr/sbin:/usr/bin
		MAILTO=root  #/var/spool/mail/root     #?
		
		 # For details see man 4 crontabs
		
		 # Example of job definition:
		 # .—————- minute (0 – 59)
		 # | .————- hour (0 – 23)
		 # | | .———- day of month (1 – 31)
		 # | | | .——- month (1 – 12) OR jan,feb,mar,apr …
		 # | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
		 # | | | | |
		 # * * * * * user-name command to be executed
注意:在使用计划任务的时候,命令一定要写绝对路径!
常用选项:
-l 查看计划任务
-r 移除计划任务
-e 编辑计划任务
-u 指定给谁创建计划任务

例子1:每分钟输出123到test文件中   #不成功
[root@ken ~]# crontab -e
* * * * * /usr/bin/echo “123” >> /root/test
查看计划任务:
[root@ken ~]# crontab -l
* * * * * /usr/bin/echo “123” >> /root/test
验证:
[root@ken ~]# tail -f test        #持续监测文件
123
删除计划任务:
方法一:
[root@ken ~]# crontab -r
[root@ken ~]# crontab -l
no crontab for root
方法二:注释
* 表示任意时间
– 表示7-10表示7,8,9,10
,表示间隔 时7,9,12
/    表示每的意思 分 */10  表示每10分钟执行一次
例子1:7,9,10执行一次重启网卡的操作
0 7,9,10 * * * /usr/bin/systemctl restart network
问题1:每月1、10、22日的4:45重启network服务
45 4 1,10,22 * * /usr/bin/systemctl restart network
问题2:每周六、周日的1:10重启network服务
10 1 * * 6,7 /usr/bin/systemctl restart network
问题3:每天18:00至23:00之间每隔30分钟重启network服务
0,30 18-23 * * * /usr/bin/systemctl restart network	
*/30 18-23 * * * /usr/bin/systemctl restart network
问题4:每隔两天的上午8点到11点的第3和第15分钟执行一次重启
3,15  8-11 */2 * * /usr/sbin/reboot

注意:计划任务的运行间隔最小单位是分钟
6. /etc/cron下有按时执行的文件夹。

三.压缩归档

作用:把文件进行打包操作,方便传输

  1. tar
    czvf #进行打包,f参数必须放在最后
    xzvf #解压包
    例子1:对/ken目录下的文件进行打包操作

    [root@ken ken1]# tar czvf ken.tar.gz ./*

    [root@ken ken1]# tar xzvf ken.tar.gz

    例子2:打包的文件名以时间进行命名

[root@ken ken]# tar czvf `date “+%F”`.tar.gz ./*
例子3:解压到特定目录之下

[root@ken ken]# tar xf 2019-06-24.tar.gz -C /ken1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值