一.脚本
验证用户存在不
#!/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
二.计划任务
- 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 - 查看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- 删除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 - 使用周期性加护任务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 - crond使用方法:
vim /etc/crontab
- 删除at计划任务
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下有按时执行的文件夹。
三.压缩归档
作用:把文件进行打包操作,方便传输
-
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