标签: bash

如何在 Centos 中每次登录时运行 shell 脚本

实际上我想在每次用户登录以及启动时运行我的 shell 脚本。我尝试过使用 crontab,但它仅在启动时运行,而不是每次登录时运行。所以请告诉我如何执行此操作。

#crontab -e
@reboot  /home/user/test.sh
Run Code Online (Sandbox Code Playgroud)

redhat shell bash centos startup-scripts

3
推荐指数
1
解决办法
2万
查看次数

Jenkins 中使用 virtualenv 的每个作业环境

我正在尝试virtualenv以编程方式管理 Jenkins 服务器上每个作业的 Python 环境,通过共享库扩展实现,以根据每个作业激活环境。例如:

/vars/activateEnvironment.groovy:

def call(String env = "/usr/local/etc/environments/jenkins-$JOB_NAME") {

    sh """
    mkdir ${env}
    virtualenv ${env}
    source ${env}/bin/activate
    """
}
Run Code Online (Sandbox Code Playgroud)

管道脚本,其中virtualenv-scripts存储库包含上述文件:

@Library('virtualenv-scripts') _

pipeline {
    agent any
    stages {
        stage("Test") {
            steps {
                activateEnvironment()
                sh 'which pip'
                sh 'echo \$PATH'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行此管道脚本,我得到以下输出:

[Pipeline] sh
[example-pipeline] Running shell script
+ echo /sbin:/usr/sbin:/bin:/usr/bin
/sbin:/usr/sbin:/bin:/usr/bin
[Pipeline] sh
[example-pipeline] Running shell script
+ which pip
/bin/pip
Run Code Online (Sandbox Code Playgroud)

我尝试使用此答案使 Jenkins 使用登录 shell,但这仍然会在每次 …

python bash virtualenv jenkins

3
推荐指数
1
解决办法
4901
查看次数

systemctl状态日志输出

当我同时运行多个服务的 systemctl status 时,就像

sudo systemctl status myservice1 myservice2 myservice3
Run Code Online (Sandbox Code Playgroud)

我看到了输出,但最后我看到了

lines 1-48/48 (END)
Run Code Online (Sandbox Code Playgroud)

或者如果参数更多,输出更大

lines 1-62
Run Code Online (Sandbox Code Playgroud)

我可以滚动或分页输出并使用q退出。

是否可以更改此行为,立即打印所有日志输出并退出命令?

debian bash systemd

3
推荐指数
1
解决办法
7042
查看次数

谁决定了 Linux 中的默认 shell 提示?

在标准的 Linux shell bash 中有几个默认值,我认为需要一些历史记录。这个问题是关于提示的。

许多 Linux 发行版中 bash 的默认提示是 [\u@\h \W]\$

对于那些无法解析的人,对于典型用户来说,它看起来像这样:

[staticsan@walcen files]$ _
Run Code Online (Sandbox Code Playgroud)

最大的问题是它只告诉您当前目录的名称。“文件”可以/var/www/files//home/staticsan/files(这是一个简单的例子)一样容易。完整路径更有意义,因此每次设置新框或创建新用户时,我都必须更改它。

那么为什么默认设置为它呢?

linux bash prompt

2
推荐指数
2
解决办法
1492
查看次数

Shell命令删除文件扩展名

我有一个目录,其中包含所有以 .sample 扩展名结尾的自动生成的文件。我想有一种方法可以在一个终端命令中从它们中删除 .sample 扩展名。

我试过这个:

mv ./{$1}*.sample ./$1
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为我肯定将 {$1} 放在错误的位置或方式。任何人都可以指出正确的方向吗?

提前致谢。

unix shell bash terminal

2
推荐指数
3
解决办法
4458
查看次数

旋转 apache 博客的脚本

我正在寻找一个可以在 apache 上轮换博客的脚本。我想通过 cron 安排脚本,以便它可以定期运行并为服务器上的所有网站轮换 access_log 和 error_log。

谢谢,马克

linux bash logrotate cron apache-2.2

2
推荐指数
1
解决办法
224
查看次数

通过 shell 脚本为可执行文件提供命令行参数

假设我有一个可执行文件xyz,它接受可变数量的命令行参数,以及一个包装器 Korn shell 脚本xyz.ksh。是否有一种简单的方法可以将所有 shell 脚本参数按原样传递给可执行文件?

scripting unix bash command-line-interface ksh

2
推荐指数
1
解决办法
3627
查看次数

如何每晚制作文件的备份副本?

我有一个名为“log.txt”的文件,我想每晚将其移动到日志文件夹。

问题是我想跟踪文件,所以我实际上需要将它移动到 log1.txt、log2.txt、log3.txt 等等。

是否有 unix 命令或 bash 脚本方式来执行此操作?

G-Man

scripting linux backup bash

2
推荐指数
1
解决办法
88
查看次数

从一台外部服务器到另一台的 SCP

我正在尝试使用本地服务器上的 SCP,将文件从一台远程服务器复制到另一台远程服务器(两台远程服务器都使用自定义端口 (xxxx))

我在尝试:

scp -r -P xxxx root@xxx.xxx.xxx.111:/home/myimages/images.tar.gz root@xxx.xxx.xxx.222:/home/myimages/images.tar.gz
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

ssh: connect to host xxx.xxx.xxx.222 port 22: Connection timed out
Run Code Online (Sandbox Code Playgroud)

有什么建议?

提前致谢。

linux ssh bash centos scp

2
推荐指数
1
解决办法
885
查看次数

Linux 101 - 如何遍历所有目录?

我是 linux 新手,正在使用 git。我有一个包含十几个子目录(git 存储库)的目录(代码)。

我想要两个我可以运行的命令

  • 获取所有存储库的当前状态。
  • git pull 对所有存储库的新更改。

我知道这对于知道自己在做什么的人来说可能非常简单,我只是无法执行正确的循环(我正在循环所有文件,而不是目录)。

谢谢!凯尔

linux bash

2
推荐指数
1
解决办法
428
查看次数