我在一台机器上有一个源目录,里面有一堆文件,所有文件都具有相同的权限,我想复制到另一个目录,通过 SMB 挂载。
[tmark@dexter JR09141045 roche_454_transfer]$ ls -l /source_dir
total 71348
-rwxrwxrwx 1 adminrig lifelabs 19768377 Mar 25 23:29 1.TCA.454Reads.fna
-rwxrwxrwx 1 adminrig lifelabs 53093396 Mar 25 23:29 1.TCA.454Reads.qual
-rwxrwxrwx 1 adminrig lifelabs 1035 Mar 25 23:29 454AllControlMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs 2657 Mar 25 23:29 454AllControlMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs 4607 Mar 25 23:29 454BaseCallerMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs 14518 Mar 25 23:29 454BaseCallerMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs 351 Mar 25 23:23 454DataProcessingDir.xml
-rwxrwxrwx 1 adminrig lifelabs 702 Mar …Run Code Online (Sandbox Code Playgroud) 我有一个 bash 脚本,它包含 rsync 的两个目录。有时会发生变化,很可能什么都没有。
我只想在 rsync 实际进行更改(添加/更新文件)时运行命令。否则我只想跳过它。是否有我应该查看的返回响应?
一些 PHP cron 作业最近开始在共享服务器上失败。他们已经运行了将近一年没有错误和更新,但现在由于语法错误而无法运行。发生了什么?
事实证明,这些脚本现在突然在 PHP 4 下运行,而不是 PHP 5。在 /usr/local/bin/php 安装了一个 PHP 4 版本,但这是这些脚本上的“shebang”行:
#!/usr/local/php5/bin/php
Run Code Online (Sandbox Code Playgroud)
我做了一些实验:
% /usr/local/php5/bin/php --version
PHP 5.2.6 (cli) (built: May 11 2008 13:09:39)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies
% echo '<?= phpversion() ?>' | /usr/local/php5/bin/php
5.2.6
% printf '#!/usr/local/php5/bin/php\n<?= phpversion() ?>' > version
% chmod …Run Code Online (Sandbox Code Playgroud) 有人可以向我解释cd -命令是如何工作的吗?man cd 告诉我An argument of - is equivalent to $OLDPWD.然后我在网上发现 $OLDPWD 是 cd 命令设置的以前的工作目录。当我做 cd - 在我的 unix 上我得到-bash: cd: OLDPWD not set这让我感到困惑。
更新:它现在可以工作了,它给了我以前的工作目录。我想我之前没有使用和 cd 命令,所以这就是没有设置 $OLDPWD 的原因。
再问一个问题cd(键入 cd 并按 Enter)是做什么的?我不会这么说的。有没有更好的技术解释?
host [~]# cd
host [~]#
Run Code Online (Sandbox Code Playgroud) 我希望能够在 shell 后台运行任务,并且不让其输出到 stdout 或 stderr 覆盖底部的命令行。我经常需要运行其他命令来与后台进程交互,并且希望从同一个 shell 中执行此操作,而无需打开另一个终端或使用多路复用器来分割终端(如屏幕)。
理想情况下,会有一些我不知道的设置(我通常使用 bash 或 ksh),但新的或不同的 shell 或脚本对我来说就可以了。
我愿意接受任何建议并感谢任何帮助,谢谢。
编辑:谢谢您的所有回答,但我的问题有点不清楚。我仍然需要观察后台任务的输出,我只是希望它不涵盖我可能在命令行上输入的任何新命令。理想情况下,后台程序的输出将显示在 shell 的除底行之外的所有行中,让我可以自由地在该行中构造新命令。
这类似于水平分割的运行屏幕,其中底部窗口只有 1-2 行高,但对于我的目的来说,使用 screen 有以下缺点:
再次感谢您的帮助,这是我的第一个问题,答案的速度和数量让我震惊!
我正在 tcsh 下获取一个文件。该文件可以位于文件系统上的任何位置。如何检索源文件的路径?
$0 不起作用:我不执行该文件,而是获取它。
非常感谢 !
我试图在下面保留 $if 并
希望以下输出
$if
bash 通过执行
$ 替换 来妨碍
$ sed -e 's:\\$:\\$:g' <<ENDOFFILE
> $if
> ENDOFFILE
Run Code Online (Sandbox Code Playgroud)
或者
$ tr '$' '\$' <<ENDOFFILE
> $if
> ENDOFFILE
Run Code Online (Sandbox Code Playgroud)
有没有办法将 $keywords 保留
到 stdout 而不
在 stdin 中显式地将它们转义出来?
我应该在尝试之前切换到另一个 shell 吗?
出于某种原因,我的 cron 作业脚本没有完全退出,它们正在备份我的服务器。目前有几百个进程在为我的一个用户运行。我可以使用以下命令杀死该用户的所有进程,但是如何简化它以仅杀死 cron?
pgrep -U username | while read id ; do kill -6 $id ; done
Run Code Online (Sandbox Code Playgroud)
按原样运行上述命令会很危险,对吗?这不会杀死 mysql 和其他重要的东西吗?
我有一种情况需要:
目前,我在脚本 B - D 中运行了标志,用于设置脚本是否仍在运行,并且在触发四个脚本后,脚本 A 处于等待循环中检查这些标志文件。
有一个更好的方法吗?
背景是这是一个使用快照的 AIX 服务器的备份脚本 - 脚本 A 在我们希望备份的文件系统上获取 JFS2 快照(它们都需要同时完成,因为我们有分布在不同文件系统上的相关数据- 这不能改变),脚本 B - D 从快照中对这些文件系统进行实际备份(三个 rsync 到不同的服务器,一个磁带备份),然后脚本 A 在所有文件复制后删除快照(包括到磁带)完成。
我可以使用此脚本从 linux 连接到 windows RDP 会话:
#!/bin/bash
/usr/bin/rdesktop -N -x m -u Administrator -p secret123 -d DOMAIN1 127.0.0.1:33891
Run Code Online (Sandbox Code Playgroud)
(远程 Windows 服务器的 rdp 端口被安全地隧道连接到本地主机上的端口 33891)
但是这个脚本没有正确传输密码:
#!/bin/bash
/usr/bin/rdesktop -N -x m -u Administrator -p #secret$123# -d DOMAIN2 127.0.0.1:33892
Run Code Online (Sandbox Code Playgroud)
我必须如何对密码中的特殊字符进行编码?
我还想知道如果我选择 /bin/sh 作为脚本的 shell 是否会有所不同。
编辑:
我发现这有效:
\#秘密\$123\#