Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何备份crontab中列出的所有文件_Linux_Bash_Shell_Crontab - Fatal编程技术网

Linux 如何备份crontab中列出的所有文件

Linux 如何备份crontab中列出的所有文件,linux,bash,shell,crontab,Linux,Bash,Shell,Crontab,我正在尝试备份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

我正在尝试备份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
我想复制在这些条目中运行的脚本。

尝试以下操作:

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

我并不以它为傲,但它是一款相当便携的shell,似乎适用于您提供的案例。您可能需要一个更智能的解析器来处理更复杂的情况,或者处理crontab中可能存在的更模糊的单词。

如果有人想备份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 
多亏了约翰