linux 执行一个脚本 怎么把系统时间当做参数给传进去,让你自动的每天执行一次

有一个脚本a.sh,执行该脚本的时候需要带上参数,如sh a.sh 20140802,现在想让其每天自动执行(参数为该天的时间,年月日),怎么做到呢
sh a.sh date+%Y%m%d 这样输入不正确
crontab任务为什么不生效呢

用crontab来做啊。

crontab -l 检查cron job
crontab -e 编辑cron job
你的情况 crontab -e 
之后输入
* 0 * * * /path/to/your/shell/script 参数
保存就可以了

追问

怎么把时间参数给传进去呢

追答

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。

# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

追问

执行a.sh后面必须带上年月日,如今天是a.sh 20140802,明天就是a.sh 20140803,依次类推,用crontab后面的时间参数要怎么写,date+%Y%m%d吗?

追答date "+%Y%m%d"
#这个才是输出 20140802

整个命令应该是
/path/to/your/shell/script `date "+%Y%m%d"`

 

在把命令放到crontab之前,你确定你的script可以在shell中正确运行。

把下面"/path/to/your/script/"换成你的a.sh的路径。
/path/to/your/script/a.sh `date "+%Y%m%d"`

确定能运行之后,再把命令放到crontab

0 0 * * * /path/to/your/script/a.sh `date "+%Y%m%d"`
#上面的命令是,明天的0点0分,就运行一次a.sh

这样说你明白了吗?

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-18
想知道最后怎么解决的,我的也是sh后面需要跟几个参数
crontab -e
0 10 * * * /home/oracle/data/bin/startup.sh 20190417 0000 15
定时任务并不执行
相似回答