我有一个bash脚本search位于我的服务器根目录下的每个静态文件,并在每个文件旁边存储一个gzipped版本。 我从http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:nginx:nginx_performance_tuning 问题是它不能与空格的文件名工作,我的网站现在不使用任何,我会尝试它永远不会,但我不是唯一一个在前端工作,所以我可能无法控制它,所以我只是想确保这个脚本适用于有空格的文件。 希望有人可以看看,并帮我修复它。 #! /bin/bash FILETYPES=("*.html" "*.woff" "*.css" "*.jpg" "*.jpeg" "*.gif" "*.png" "*.js") # specify a list of directories to check recursively DIRECTORIES="/usr/share/nginx/www/" for currentdir in $DIRECTORIES do for i in "${FILETYPES[@]}" do find $currentdir -iname "$i" -exec bash -c 'PLAINFILE="{}";GZIPPEDFILE="{}".gz; \ if [ -e "$GZIPPEDFILE" ]; \ then if [ `stat –printf=%Y $PLAINFILE` […]
我有一个自定义脚本,当他们有一天gzip日志文件。 在我的脚本中,所有的错误(stderr)都被logging到一个文件中,并且在脚本结尾我使用这个文件来知道它的执行是否正确。 我的代码的这部分看起来像 # redirection of stderr to file exec 2> /tmp/errors.txt # gzip old log files find *.log -mtime +1|xargs gzip -f # test if error log file is empty if [ -s /tmp/errors.txt ]; then ….. fi 我的问题是:如果至less有一个文件要gzip,这段代码工作的很好,但如果不是这样的话,那么当我不想要的时候会引发一个错误。 我试过不同的解决scheme来解决这个问题没有成功。 有谁知道如何解决这个问题?
我有一个目录,我们把它叫做htdocs/live/ 。 这个目录下有许多不同的目录,每个目录都有一个commonFunctions.js文件, commonFunctions.js位于js目录中。 例如,下面是几个包含commonFunctions.js的目录commonFunctions.js : htdocs/live/abc123/js/commonFunctions.js htdocs/live/program1/js/commonFunctions.js htdocs/live/program2/js/commonFunctions.js htdocs/live/bunnies/js/commonFunctions.js htdocs/live/emerald/js/commonFunctions.js 我怎样才能编写一个命令来列出上次修改这些文件的顺序?
Powershell似乎无法正确parsing: mysql.exe '-uroot -p123 DB < c:\test\DB.sql' 我也试过这个: Start-Process mysql.exe -arg '-uroot -p123 DB < c:\test\DB.sql' 编辑:那么这个作品: cmd '/c mysql.exe -uroot -p123 DB < dump.sql' 这有一个更优雅的方式来做到这一点? 它总是一个皮塔通过args exe加上powershell。
我有一个脚本,返回以下信息 Analog Phones IP Phones Location ————- ——— ——– 0 883 Site1 413 0 Site1 0 4 Site1 0 258 Site2 9 75 Site2 183 0 Site2 这个信息存储在一个数组$ arrayX中 我想弄清楚如何让输出显示 Analog Phones IP Phones Location ————- ——— ——– 413 887 Site1 192 333 Site2 馈送arrays的数据不是以这种方式呈现的; 有没有人有任何想法如何完成这样的事情? 我可以发布整个脚本,但现在是java,axl和powershell的混杂。 脚本中的数据看起来像这样 Analog Phones IP Phones Location ————- ——— […]
我有一个kickstart文件,它在%pre部分中提供了一个主机名。 我似乎无法弄清楚如何得到它两个第一。 正如你所看到的,它将服务器信息发送到另一个设备,然后根据另一个数据库自定义服务器。 我需要弄清楚如何获取主机名参数,然后发送到发布。 %pre #!/bin/sh exec < /dev/tty6 > /dev/tty6 chvt 6 clear echo "################################" echo "# Running Pre Configuration #" echo "################################" echo -n "Give hostname: " read hostname hostname $hostname echo $hostname > /home/hostname echo $hostname > /mnt/sysimage/home/hostname exec < /dev/tty1 > /dev/tty1 chvt 1 %packages @base @core %post exec < /dev/tty6 […]
我在mysqlcheck手册中看到,有一个选项可以覆盖那个数据库选项,但是没有很好的解释。 我试图运行mysqlcheck -o,我希望它优化每个数据库中存在的特定表,但只有该表。 **我想我可能不够清楚 我有250个数据库,都包含表api_log。 我想运行一个命令,只会优化表api_log,但在每个数据库的MySQL服务器。 例如: mysqlcheck -o –tables api_log -A 显然这个特定的代码片段不起作用,但它expression了我想要完成的事情。 我不想优化每个数据库中的每个表,只有一个表存在于所有250个数据库中。
我想从我的apache日志中创build不到43天前创build的所有gzip文件。 作为一个testing,我只是从find中列出我的文件: sudo find /var/log/apache2/ -mindepth 1 -ctime -43 -name "*.gz" -ls 但是结果包括了在8月份(安装服务器时)以及更新的文件创build的文件: 8781890 4 -rw-r—– 1 root adm 186 Aug 10 06:44 /var/log/apache2/error.log.13.gz 8781923 4 -rw-r—– 1 root adm 1717 Aug 17 06:29 /var/log/apache2/error.log.12.gz stat /var/log/apache2/error.log.13.gz File: `/var/log/apache2/error.log.13.gz' Size: 186 Blocks: 8 IO Block: 4096 regular file Device: 807h/2055d Inode: 8781890 Links: 1 Access: […]
我正在更新大约20个执行各种服务器端操作任务的bash脚本,检查状态/发送报告等。在某些环境中,这些脚本将在本地运行,而其他脚本则需要远程运行。 脚本应该检测他们是否需要远程或本地运行,并“做正确的事情” #!/bin/bash # Generate the foo report execute_host=appdev7 if [[ "$execute_host" != "$(hostname)" ]]; then # ssh-agent will provide passwordless logon ssh "$execute_host" < $0 else # run report echo "Report" fi 一些脚本使用共享函数和环境variables。 我可以使用ssh SendEnv选项传递环境variables,但我无法弄清楚在远程运行时使共享函数可用的好方法。 ./shared.sh # Shared functions and variables export report_host="appdev7" function run_report() { # run report echo 'Report' } 。/例 #!/bin/bash […]
我正在创build一个PowerShell脚本来修复或重新安装客户端远程基于用户input(下面的基本脚本示例): $env:COMPUTERNAME = Read-Host 'Please enter hostname' $RepairReinstall = Read.Host ' 1: Repair Client 2: Re-install Client Answer' If (RepairReinstall -eq 1) { Write-Host " Repair Started" } If (RepairReinstall -eq 2) { Write-Host " Re-install Started" } Else { Write-Host " [WARNING] Please select whether you'd like to repair or re-install the client" } […]