首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我在crontab中使用pemkey scp而不是wok。但是用男人的方式运行它是可行的

您提到的crontabpemkeyscpnohup都是Linux系统中用于任务调度、文件传输和后台运行的工具。下面我将为您解释这些工具的基础概念,以及它们的优势、类型、应用场景,并针对您遇到的问题提供解决方案。

基础概念

  1. Crontab:
    • 是Linux系统中的一个定时任务调度器,允许用户在特定时间执行命令或脚本。
  • Pemkey:
    • 通常指的是SSH密钥对中的私钥文件,用于无密码登录远程服务器。
  • SCP (Secure Copy Protocol):
    • 是基于SSH的一种文件传输协议,用于在网络上的两台计算机之间安全地复制文件。
  • NoHup:
    • 是一个Unix/Linux命令,用于在用户退出系统后继续运行指定的进程。

优势与应用场景

  • Crontab:
    • 优势:自动化任务执行,节省时间。
    • 应用场景:定期备份、日志清理、定时邮件发送等。
  • Pemkey:
    • 优势:安全性高,无需每次输入密码即可登录。
    • 应用场景:自动化脚本登录远程服务器执行任务。
  • SCP:
    • 优势:传输过程中数据加密,安全可靠。
    • 应用场景:跨服务器文件传输,特别是在需要保证数据完整性和隐私性的场合。
  • NoHup:
    • 优势:允许进程在用户注销后继续运行。
    • 应用场景:长时间运行的后台任务,如数据分析、批处理作业等。

遇到的问题及解决方案

您提到使用pemkey scpcrontab中运行时遇到问题,但使用nohup可以正常运行。这可能是由于以下几个原因:

  1. 环境变量差异:
    • crontab执行时的环境变量可能与直接在shell中执行时不同。
  • 权限问题:
    • crontab可能没有足够的权限访问或使用私钥文件。
  • 路径问题:
    • crontab中指定的脚本或命令的路径可能与预期不符。

解决方案

  1. 检查环境变量:
    • 在脚本开头添加以下内容以设置必要的环境变量:
    • 在脚本开头添加以下内容以设置必要的环境变量:
  • 确保权限正确:
    • 确保私钥文件的权限设置正确,通常应该是600
    • 确保私钥文件的权限设置正确,通常应该是600
  • 使用绝对路径:
    • crontab中使用脚本和文件的绝对路径,避免因相对路径导致的问题。
  • 调试输出:
    • 将脚本的输出重定向到一个日志文件中,以便查看错误信息:
    • 将脚本的输出重定向到一个日志文件中,以便查看错误信息:
  • 使用nohup与crontab结合:
    • 如果上述方法都不奏效,可以尝试在crontab中使用nohup来启动脚本:
    • 如果上述方法都不奏效,可以尝试在crontab中使用nohup来启动脚本:

通过以上步骤,您应该能够解决在crontab中使用pemkey scp时遇到的问题。如果还有其他具体错误信息,请提供详细日志以便进一步分析。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Shell脚本中一个奇怪的问题

ETL服务器 4)如果没有错误,则使用scp或者rsync的方式同步文件至ETL服务器 5)移动当前的导出文件至归档目录 结果碰到了魔性的一些场景,我手工执行脚本,整个流程很正常,但是在crontab...我把crontab里面的命令复制出来,手工执行,依然可以正常执行,但是在crontab中执行了一部分,没有任何报错。 所以这几个现象让我感到很郁闷,看起来是多么简单的一个需求,竟然这么纠结。...在scp的部分我做了不下20次调试,最后肯定就是这个scp的命令部分存在问题,让我纠结的,还不知道是什么原因导致的,我们做了如下的排除工作。...排除了scp的用户的一些配置差异 排除了日志的输出格式的处理差异 排除了scp命令在循环中的语法差异 排除了scp命令的限制,改用rsync的方式问题依然存在 排除了crontab任务属主的潜在配置差异...至此我对scp命令不会存在阴影了,也不会怀疑人生了,而反推这个过程,我依旧不能肯定自己能够快速定位到这个问题,所做的就是遵守一些基本的规范。

79620
  • 临近五一,小林我删删删删库了,要跑路吗?

    还好这次是比较幸运,因为在执行脚本的时候,第一时间发现不对劲,立马掐断了还在运行的脚本,所以并非 Linux 所有文件都被删除了。 只要我掐的快,rm -fr /* 就干不死我。...---- 还原文件 由于 /bin 目录 和 /lib 部分动态文件被删除,常用的传递文件的方式是无法使用的,如 ftp、scp、mount 等。...但是新的问题就来了,我下载过来的命令文件,是没有执行权限的。 ? 而 chmod 命令是在 /bin 目录的,它同样也被删除了,无法使用它来给予文件权限。...最好是遇到变量不存在,脚本应该报错,而不是一声不响地往下执行。 set -u 就用来改变这种行为,在脚本加上它,遇到不存在的变量就会报错,并停止执行。 #!...③ 修改 ~/.bashrc, 用我们自建的 remove.sh 替代 rm 命令 alias rm="sh /home/remove.sh" ④ 设置 crontab,定期清空垃圾箱,如每天 0 点清空垃圾箱

    2.7K20

    高级CLI:开发都人员应该知道的命令

    在本文中,我们不会介绍ls,rm和cd等基本命令。看到这些命令应该不会令您感到震惊。您甚至可能对它们非常熟悉,特别是如果您非常了解命令行的方式。我假设您之前至少已经在命令行上工作(或尝试过工作)。.../header.jpg wgetwget的一大优点是它是非交互式的,这意味着它可以在用户未登录时在后台运行。...在某些情况下,您可能希望将某些命令的结果输出到文件中。 例如,用于日志记录的目的。要重定向输出,可以使用>。在以下命令中,ls -al的输出重定向到文件myfile而不是屏幕。...ls -al> myfile 在此示例中,我使用了ls,但实际上它可以是任何具有某些输出的命令。为了确认这是可行的,您可以检查myfile文件。 技巧2:合并命令 一次可以运行两个或多个命令。...您可以连续执行多个命令,而不管每个先前的命令是否成功。 ls -al; pwd; 如果要仅在第一个命令成功的情况下运行第二个命令,请使用逻辑和操作符(即&&)分隔命令。

    74320

    一篇精辟的Linux必知必会​,推荐收藏

    之前其实我也提到过算法工程师,除了算法,必须还有工程,你的模型要给用户用,要在线上跑,那必须要打包发布,放在服务器上,而现在大多服务器用的都是Linux系统,暂且不说是否需要深入了解Linux内部的内容...terminal,而windows则可以安装虚拟机配置ubantu(linux的一个版本),同样在terminal中操作。...grep grep是遍历文件中带有特定字段的内容,例如我要找带有“深圳”的数据,这可以帮我们过滤信息,我在读取日志的时候很喜欢用,日志的内容非常繁杂,我根据日志中打的标签,可以快速选择我需要关注的日志信息...sed 平时用的不是很多,但是用起来非常强大,可以依照脚本指令编辑一个、多个文件。来举个栗子,具体用法可以在文档里面查吧。...(作为小弟的我似乎没有什么机会用到,自己平时操作就不需要分配,团队里我是末尾也是用不到哈哈哈,等用得到的那天再说) nohup 在命令之前带这个玩意,能让命令在后台一直运行(类似windows的最小化)

    85720

    【Gitlab】371- GitLab从安装到全自动化备份一条龙

    deb版本的gitlab,示例也选择这个企业版 1.backups目录的只有root才能操作的,但是gitlab恢复操作使用者是git 所以将新旧服务器上/var/opt/gitlab/backups文件夹设置为可读可写可执行...这个问题是由于,我执行了sudo chmod -R 777 gitlab的命令,将gitlab的子目录下的所有文件都赋予了可读可写可执行的权限 解决方式 sudo chmod -R 2770 /var/...配置文件 sudo /usr/sbin/service cron reload #重启cron服务 sudo /usr/sbin/service cron restart 注意:6之前是0,而不是* 最后需要重新启动...测试 在旧服务器上使用scp命令复制文件到新服务器上是否还需要密码 scp 1559635752_2019_06_04_10.7.2-ee_gitlab_backup.tar gitlab-backup...往crontab添加定时任务,自动执行恢复备份包脚本 sudo vim /etc/crontab 在crontab中加入此定时任务 # 仇飞鸿编辑于2019-6-3 添加定时任务,每天上午9点,自动执行从备份包中恢复

    2.4K30

    minigui: 基于miniStudio1.2.1创建模式对话框(DialogBox)

    miniStudio生成的对话框模板,使用nscCreateModalDialogFromID函数创建模式对话框是无效的,下面是nscCreateModalDialogFromID的实例代码: int...,不是模式的。...Class 属性 minigui提供的miniStudio (1.2.1)还没有做完善,所以在miniStudio中只能生成class类型为mainwnd的标准窗口,因为如下图没有办法在gui界面中修改...如下图打开模板对应的xml文件,将窗口的class修改为DialogBox,这样创建的窗口实例的类型就为mDialogBox。 ? 再次用ministudio打开资源模板。...那么是不是可以直接用mGNCS(miniStudio新控件集)提供nscCreateModalDialogFromID函数创建对话框呢? 你可以试试,运行的时候肯定会抛出异常。为什么呢?

    87810

    Linux常用Shell脚本,值得学习及收藏

    小伙伴要是不熟悉linux的话可以在公众号内回复 “linux” 获取linux的教程 之后咱们在来回过头来学一学脚本 1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下...执行 prgx文件中的内容: root@xxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab。...参考答案: (1)第一种方法: 用户应使用crontab –e 命令创建crontab文件。...,但是实际情况中,有可能在下级或者更深的目录,我们可以使用find查找 #!...$i.zip -d PATH2$i done ssh 批量上传文件 上传文件大多数用的是ftp,但是用ftp有一点不好,就是本地和远程的目录要对应,这样就要在多个目录下去切换,这样挺麻烦的,如果不注意的话

    3.4K10

    Linux常用Shell脚本知多少

    小伙伴要是不熟悉linux的话可以在公众号内回复 “linux” 获取linux的教程 之后咱们再来回过头来学一学脚本 1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下...执行 prgx文件中的内容: root@xxx:#crontab prgx;在每日早晨8:00之前开机后即可自动启动crontab。...参考答案: (1)第一种方法: 用户应使用crontab –e 命令创建crontab文件。...,但是实际情况中,有可能在下级或者更深的目录,我们可以使用find查找 #!...$i.zip -d PATH2$i done ssh 批量上传文件 上传文件大多数用的是ftp,但是用ftp有一点不好,就是本地和远程的目录要对应,这样就要在多个目录下去切换,这样挺麻烦的,如果不注意的话

    1K10

    Linux之软件安装

    大家都知道,Windows下安装软件时,只需用鼠标双击软件的安装程序,或者用Zip等解压缩软件解压缩即可安装;在android或者apple中安装软件时,只需要在手机应用商店点击安装即可。...下软件的安装受到操作系统安装环境的影响,比如某些软件在安装或者运行过程中需要调用操作系统本身的库文件,或者需要运行系统的某个工具等等,但是系统中不存在这个库文件或者这个工具没有安装,那么安装或者运行软件就会失败...3.11搭建局域网时间服务器 在每一台机器上,都可以使用定时任务crontab同步网络上的时间服务器 ,如time.windows.com 前提:安装ntpdate.x86_64 然后: 使用root...3.12 定时器crontab 3.12.1 crontab的简介 在Linux中,周期性的执行任务一般由cron这个守护进程来处理,它是一个linux下 的定时任务执行工 具,可以在无需人工干预的情况下运行作业...: 执行的命令 书写注意事项 全都不能为空,必须填入,不知道的值使用通配符*表示任何时间 每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔。

    10.3K21

    Linux文件自动备份方案

    方案一:SCP 最简单的方式,就是利用SCP来实现自动远程备份。...1、公私钥免密连接 2、crontab+scp: 0 0 * * 0 scp -r root@192.168.204.130:/tmp/ /tmp 但这种方式,需要放开SSH运维端口,即使设置白名单,...方案二:FTP 说起文件传输备份,首先想到就是FTP,FTP是用于网络上进行文件传输的一套标准协议,但使它声名狼藉的问题是它以明文方式传输密码和文件内容,只要在网络中对FTP连接进行监控就能被窃取。...FTP协议存在一些难以改善的缺点,它将走向终点。 很显然,这并不是一个好的技术方案。 方案三:SFTP SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。...但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低。不过现实使用中,文件量并没有那么大,这种差别并不明显。

    3.2K30

    新加坡服务器上如何实现自动脚本运行

    在新加坡服务器上运行脚本涉及几个关键步骤,包括连接到服务器、上传脚本、配置环境以及实际执行脚本。以下是详细的步骤指南,适用于Linux服务器:1....上传脚本使用SCP上传脚本如果脚本在本地机器上,可以使用SCP(Secure Copy)将脚本上传到服务器。...如果脚本需要特定的解释器(如Python、Bash等),在命令前加上解释器。# 运行Shell脚本....sh复制代码crontab -e在crontab文件中添加如下行,表示每天凌晨2点运行脚本:sh复制代码0 2 * * * /remote/path/to/your-script.sh常见问题排查权限问题...依赖问题:确保所有必要的软件和库都已安装。路径问题:确保使用绝对路径来避免路径问题。其他工具screen 或 tmux:用于在断开SSH连接后继续运行脚本。

    12710

    CentOS下(rsync+crontab)触发式实现服务器间的文件备份同步

    第一次同步时, rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。...-(下载,更新,删除等) 在操作上,最简单的配置比例为【服务端:客户端 = 1:1】 例如,本次的实际操作中,我配置了一个服务端(IP:192.168.1.160),其中的一个客户端(...一种方法:直接在 /etc/crontab 中添加命令 找到 crontab 文件所在位置,根据定时任务配置规范添加信息,以本人为例,在目录/etc/crontab中 vi /etc/crontab...注意/提醒 个人发现: 使用非脚本命令执行的可行性高,期间测试了好多次,当然也有可能是自己的配置存在问题 使用脚本命令,相对而言要方便些,更改脚本文件信息后,不需要每次重启 crond ,当然希望能正确配置...参考文章 使用 rsync 实现客户端与服务器端的文件同步与传送 rsync 常见错误及解决方法 汇总 rsync 使用中错误信息

    1.3K20

    算法面试题:一个List,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点!

    ,内存将进行重新分配,具体做法就是在属性 Capacity 内部,使用 newCapacity 声明一个新的数组,然后把源数组中的内容复制到新数组中。...但是,我们又没有办法知道有多少男人(1)呀,那怎么办,这种时候就要逆向思维,声明一个足够大的数组,你源数据不是有 10000 条吗,那我就假定 10000 个都是男人(1),声明一个 10000 人的列表好了...上面的修剪代码虽然看似执行了修剪女人(0)的过程,实际上,我们要了解的是,在修剪的过程中, students.Count 会随着修剪的执行过程而同时会发生改变,最终结果就是,修剪长度被缩短,导致部分女人...方案三的修正版本 那么我们就没有办法使用修剪方案了吗? 不是的,请年轻人先把40米的大刀收一收,我们来修正一下上面的修剪方案。...而从综合考虑,修剪方案较为可行(仅针对本题)。

    38410

    PHP定时任务执行实现

    服务器定时任务 Unix平台 如果您使用 Unix 系统,您需要在您的 PHP 脚本的最前面加上一行特殊的代码,使得它能够被执行,这样系统就能知道用什么样的程序要运行该脚本。...为 Unix 系统增加的第一行代码不会影响该脚本在 Windows 下的运行,因此您也可以用该方法编写跨平台的脚本程序。...1、在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本,每一小时执行 myscript.php 如下: #...2、在Crontab中使用URL执行脚本 如果你的PHP脚本可以通过URL触发,你可以使用 lynx 或 curl 或 wget 来配置你的Crontab。...但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。

    2.9K20

    Linux系统之常用命令

    更详细,使用cat /proc/loadavg: 0.00, 0.01, 0.05:三个数值依次为1min、5min、15min前到现在的平均负载 3/113:其中的3代表此时运行队列中的进程个数...,而113则代表此时的进程总数量 2580:最后创建的一个进程ID 系统负载分析,详见Linux系统之运行状态分析及问题排查思路:CPU分析。...使用swap是为了在系统内存不够用的时候,防止系统崩溃。一般不要使用,会影响应用程序性能。因为swap使用的是虚拟内存(磁盘空间),相比内存慢了去了。...:在不通主机间复制文件或目录 参数:常用的参数 -r:递归处理,将指定目录下的文件与子目录一并处理 -f:强行复制文件或目录,不论目标文件或目录是否已存在 命令: scp文件:scp /usr/local...:进程在内核空间占用cpu的百分比 %guest:任务在虚拟机中花费的CPU百分比 %CPU:进程占用cpu的百分比 CPU:处理进程的cpu编号 Command:命令 统计内存 PID:进程id minflt

    1.5K10

    端到端的单细胞管道SCP-安装

    ") 手动安装: 用各种方式下载好R包,比如在R中可以运行命令: download.file("https://github.com/zhanghao-njmu/SCP/archive/refs/tags...这不是报错,你可以继续使用SCP的大部分功能,也可以运行SCP::PrepareEnv()来继续构建SCP所需的python环境和软件包,来运行RunPAGA、RunSCVELO等python方法。...这里使用pip安装包而不是用conda的原因有两个,一个是快,另外一个是有些包使用conda自动安装后可能无法使用,对个人环境和权限有要求。...解决办法是在R中运行: if (!...有两种解决办法: 在R console加载运行SCP,或者取消Rstudio所有的启动后加载功能; 在你的home目录下或者R project目录下, 新建.Rprofile(它是R的启动文件,会在R环境启动时自动加载

    2.1K20

    Python中使用定时调度任务(Schedule Jobs)的5种方式

    我将使用以下方式讨论调度任务: 简单循环 (Simple Loops) 简单循环但是使用了线程 (Simple Loops but Threaded) 调度库 (Schedule Library) Python...使用无限运行的 while 循环定期调用函数可用于调度作业,但这不是最好的方法,不过它是很有效的。可以使用内置time模块的slleep()来延迟执行。...不过这并不是大多数作业的调度方式,因为,它看起来很难看,而且与其他方法相比,它的可读性较差。...简单循环但是使用了线程Simple loops but threaded 线程是计算机科学中的一个概念。...在crontab中,一个定时调度使用 unix-cron字符串格式(* * * * *)来描述,它是一组五个值的一条线,这表明当作业应该被执行时,python-crontab 将在文件中写入 crontab

    2.3K30
    领券