我正在尝试备份crontab条目结构和在crontab下运行的文件。
但我仍然坚持如何搜索crontab -l
中的文件并复制在其下运行的脚本。
我的可能方式
我已经列出了
crontab -l > test.txt
cat test.txt
但如何在列出后搜索文件。
我的参赛作品如下:
# daily pingback report
30 1 * * * php /var/opx/cron-script/daily-email-reports/pingback_report.php | curl --data-binary @- https://pxc.com/email/send
# --------------------------------------------------------------------------------------------------
# daily jobs 02+ hours
# --------------------------------------------------------------------------------------------------
# daily Failed Device Search
0 2 * * * /var/opx/cron-script/failed_device_search.sh
# daily Device Not Detected (we are not getting any of these, so commenting out)
# 5 2 * * * /var/opx/cron-script/device_not_detected.sh
# daily Failed App Search (we are not getting any of these, so commenting out)
# 10 2 * * * /var/opx/cron-script/failed_app_search.sh
# daily oss event report (uncomment when dev db issue is fixed)
10 3 * * * /var/opx/cron-script/event-analysis/daily-oss-event-report
# Copy tomcat logs from s1 and s2 , compress them and move to S3 storage
#30 21 * * * /var/opx/cron-script/log_backup.sh
我想复制在这些条目中运行的脚本。
答案 0 :(得分:0)
试试这个:
for part in $(sed 's/#.*//' test.txt | while read t1 t2 t3 t4 t5 main; do echo $main; done); do
echo $part
done | grep / | grep -v ://
对于您的示例,打印:
/var/opx/cron-script/daily-email-reports/pingback_report.php
/var/opx/cron-script/failed_device_search.sh
/var/opx/cron-script/event-analysis/daily-oss-event-report
我并不为此感到骄傲,但它是相当便携的外壳,似乎适用于您提供的案例。对于更复杂的情况,您可能需要更智能的解析器,或者处理可能存在于您的crontabs中的更加模糊的单词。
答案 1 :(得分:0)
如果有人想要备份cron的
,这是我的脚本#!/bin/bash
#This Script use for backup of crontab files and entries
#Modify as per your need
mkdir -p /mnt/cron_backups
for part in $(crontab -l | grep -v "clientmqueue" | sed 's/#.*//' | while read t1 t2 t3 t4 t5 main; do echo $main; done); do
echo $part
done | grep / | grep -v :// | while read -r row
do
scp $row /mnt/cron_backups/
crontab -l > /mnt/cron_backups/backup_cron.txt
tar -cvzf /mnt/cron_backups.tar.gz /mnt/cron_backups/
done
# grep -v is used for ignoring specific script with specific words or character
感谢约翰......