Linux实验六——关于mail和crontab

Posted 夜中听雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux实验六——关于mail和crontab相关的知识,希望对你有一定的参考价值。

题目答案这个博客都写了

Linux实验6(定时器crontab、邮件mail)_LittleSeedling的博客-CSDN博客

笔记待改,下面的内容不推荐阅读。

我的一些测试

[root@wu1 cron]# yum install  -y mailx
[root@wu1 cron]# yum install -y sendmail

mail、mailx、sendmail的区别 _ppby2002的专栏-CSDN博客
mail发邮件报错 “send-mail: fatal: parameter inet_interfaces: no local interface found for ::1” - 天宇星空 - 博客园

发邮件测试

[root@wu1 ~]# echo "content" | mail -s "subject" root		# 邮件的subject和content。邮件发送得很慢。
You have new mail in /var/spool/mail/root
[root@wu1 ~]# cat /var/spool/mail/root	# 邮件地点

定时任务测试一

[root@wu1 ~]# crontab -e	# 在编辑器中输入:*/1 0-23/1 * * * date
no crontab for root - using an empty one
crontab: installing new crontab

# 会每隔一分钟发出一份下方这样的邮件到/var/spool/mail/root
From root@wu1.localdomain  Fri May  7 14:21:01 2021
Return-Path: <root@wu1.localdomain>
X-Original-To: root@wu1
Delivered-To: root@wu1.localdomain
Received: from wu1 (localhost [127.0.0.1])
	by wu1.localdomain (Postfix) with ESMTP id A96424302E
	for <root@wu1>; Fri,  7 May 2021 14:21:01 +0800 (CST)
Received: (from root@localhost)
	by wu1 (8.14.7/8.14.7/Submit) id 1476L1q3028137;
	Fri, 7 May 2021 14:21:01 +0800
Date: Fri, 7 May 2021 14:21:01 +0800
Message-Id: <202105070621.1476L1q3028137@wu1>
From: "(Cron Daemon)" <root@wu1.localdomain>
To: root@wu1.localdomain
Subject: Cron <root@wu1> date
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=9535>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

Fri May  7 14:20:01 CST 2021

定时任务测试二

[root@wu1 ~]# vim /root/test/date.sh	# 在编辑器里输入:echo "bye"
[root@wu1 ~]# crontab -e	# 修改编辑器中内容为编辑器:*/1 0-23/1 * * * /root/test/date.sh
[root@wu1 ~]# chmod 777 /root/test/date.sh	# 原本为"rw-r--r--"。不修改这个,邮件内容为:/bin/sh: /root/test/date.sh: Permission denied

# 会每隔一分钟发出一份下方这样的邮件到/var/spool/mail/root
From root@wu1.localdomain  Fri May  7 14:36:01 2021
Return-Path: <root@wu1.localdomain>
X-Original-To: root@wu1
Delivered-To: root@wu1.localdomain
Received: from wu1 (localhost [127.0.0.1])
	by wu1.localdomain (Postfix) with ESMTP id 3BE334302E
	for <root@wu1>; Fri,  7 May 2021 14:36:01 +0800 (CST)
Received: (from root@localhost)
	by wu1 (8.14.7/8.14.7/Submit) id 1476a1PE029500;
	Fri, 7 May 2021 14:36:01 +0800
Date: Fri, 7 May 2021 14:36:01 +0800
Message-Id: <202105070636.1476a1PE029500@wu1>
From: "(Cron Daemon)" <root@wu1.localdomain>
To: root@wu1.localdomain
Subject: Cron <root@wu1> /root/test/date.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=9554>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

bye

# 没找到定时把"bye"打印到控制台的办法,但可以使定时任务不发邮件,而是输出内容到某文件中。
[root@wu1 ~]# vim /root/test/date.sh	# 修改编辑器中内容为:echo "bye" >> /root/test/hh.txt
[root@wu1 ~]# crontab -u root -l	# 会每隔一分钟追加一个"bye"到/root/test/hh.txt
*/1 0-23/1 * * * /root/test/date.sh
[root@wu1 ~]# cat /root/test/hh.txt	

其他

date

[root@wu1 ~]# date -I	# i的大写字母,表示按照 ISO-8601 的日期/时间格式输出时间。
2021-05-07
[root@wu1 ~]# date '+%Y-%m-%d %H:%M:%S'
2021-05-07 16:00:31

查看服务是否开启

查看服务是否开启的两种方式:
1、ps -ef | grep vsftpd。
ps -ef | grep vsftpd | grep -v 'grep'。ps -ef | grep vsftpd有两条记录,一个是vsftp的进程,一个是grep进程,通过-v参数去掉grep的记录。

2、netstat -ntlp | grep 23。23端口,telnet服务。

切割

# awk和cut都可以进行切割:
[root@wu1 ~]# cat /etc/passwd | cut -d: -f1,3,4	# 把输出内容按“:”分割,取出其中的1、3、4列,然后用“:”分隔这3列。
root:0:0
。。。

[root@wu1 ~]# cat /etc/passwd | awk -F: '{print $1":"$3":"$4}'	# 把输出内容按“:”分割,取出其中的1、3、4列,然后用“:”分隔这3列。
root:0:0
。。。

tail

[root@wu1 ~]# tail -f /root/test/program.sh	# 参数f,当文件增长时,输出后续添加的数据。ctrl+c结束。

[root@wu1 ~]# cat /root/test/program.sh | tail -n1	# tail命令的参数,-n<行数> 显示文件的尾部 n 行内容

userdel

userdel -r a123	# -r,删除用户登入目录以及目录中所有文件。

ls的参数d、R。

[root@wu1 test]# ls -l /root/test
total 5920
-rwxr-xr-x 1 root root     572 Apr 30 23:36 file.sh
-rwxr-xr-x 1 root root     699 May  7 08:57 menu.sh
-rwxr-xr-x 1 root root     395 Apr 30 11:27 score.sh

[root@wu1 test]# ls -ld /root/test		# d参数,只会把当前目录/root/test打印出来。
drwxr-xr-x 2 root root 4096 Apr 30 23:36 /root/test

# 新建目录New Folder和目录下文件New File
[root@wu1 test]# ls -Rl /root/test		# R参数,递归打印
/root/test:
total 5924
-rwxr-xr-x 1 root root     572 Apr 30 23:36 file.sh
-rwxr-xr-x 1 root root     699 May  7 08:57 menu.sh
drwxr-xr-x 2 root root    4096 May  7 09:16 New Folder
-rwxr-xr-x 1 root root     395 Apr 30 11:27 score.sh

/root/test/New Folder:
total 0
-rw-r--r-- 1 root root 0 May  7 09:16 New File
cat /etc/vsftpd/vsftpd.conf | tail -n1。得到输出结果的最后一行
chkconfig --list | grep telnet 1>a.txt。前几行是系统提示,不是输出流里的东西,无法转走。“telnet:on”是正确输出流,才能被转移输出到文件。

以上是关于Linux实验六——关于mail和crontab的主要内容,如果未能解决你的问题,请参考以下文章

如何查看crontab的日志记录

关于工作,学习中定时备份的几个方法(cron,git,mail)

如何查看crontab的日志记录

linux计划任务crontab

crontab定时任务不执行,单独运行sh生效

六 linux UART串口驱动代分析