如何正确在Linux Shell脚本中定义一个时间变量?

如何正确在Linux Shell脚本中定义一个时间变量?,第1张

1、创建脚本 test.sh,并入截图内容。

2、执行test.sh脚本。

3、使用用户变量,创建 test.sh 脚本,填入截图内容。

4、执行脚本输出结果。

5、命令替换将命令赋值自定义变量,可以通过反引号字符实现 。

你的变量定义格式有误,变量调用系统命令时的格式:

TIME=$(date -d'1 day ago' "+%Y%m%d")

TIME=`date -d'1 day ago' "+%Y%m%d"`

#推荐使用第一种方式,看起来比较直观也容易避免一些问题

完整的脚本如下:

在/root/目录下创建名为 tar_log.sh的sh文件

#!/bin/bash

TIME=$(date -d'1 day ago' "+%Y%m%d")

logdir="#日志存放位置"

cd $logdir/

tar -zcf ip-${TIME}.tar.gz ip-${TIME}.txt

crontab 设置如下:

00 00 * * * /bin/bash /root/tar_log.sh

我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成1996年6月10日的命令如下。 \x0d\x0a\x0d\x0a#date -s 06/10/96 \x0d\x0a将系统时间设定成下午1点12分0秒的命令如下。 \x0d\x0a#date -s 13:12:00 \x0d\x0a\x0d\x0a注意,这里说的是系统时间,是linux由 *** 作系统维护的。 \x0d\x0a\x0d\x0a在系统启动时,Linux *** 作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。 \x0d\x0a\x0d\x0a#clock -w \x0d\x0a这个命令强制把系统时间写入CMOS


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8345829.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存