我有一个我写的脚本来创build从Linux工作站到Windows服务器的RDP连接。 在插入以太网插孔的机器上使用时,一切都非常棒,但在无线工作站上使用时,rdesktop会在几分钟的活动后始终locking并冻结。 唯一的恢复方法是杀死rdesktop进程并重新启动连接。 也许我没有实现所有正确的rdesktop开关,或者我失去了明显的东西? rdesktop -g "$geometry" -xl -z "$server" 我向其他远程桌面客户端开放,只要他们提供可以通过Bash和Python程序控制的CLI界面。
我有一个在AIX中运行的shell脚本,它将每天晚上为每个SVN存储库执行备份。 执行如下: 下载每个存储库保存为转储文件: svnrdump on repo_A svnrdump on repo_B svnrdump on repo_X ## X is the subsequent number of repository 下载过程完成后,内容将被压缩: bzip2 –compress repo_A_yyyymmdd.dump bzip2 –compress repo_B_yyyymmdd.dump bzip2 –compress repo_X_yyyymmdd.dump ## X is the subsequent number of backup copy 然后,我将通过从今天删除比第五天更长的副本(我只需要保留最近5个最新的备份副本)来对备份副本进行pipe理: rm `ls -t repo_A_????????.dump.bz2 | tail -n +6` rm `ls -t repo_B_????????.dump.bz2 | tail -n […]
我有一个输出一堆数据的命令,但我只需要两行。 Grep不起作用,因为我想要的行不是紧挨着。 我似乎无法弄清楚… 请帮助。 🙂 示例输出: Schedule: blabla: blabla: blabla: blabla: blabla: blabla: Something Level: blabla: blabla: blabla: 我想要这些行: Schedule: Something Level: 这个输出通过不同的服务器重复,输出是不一样的。 所以我需要一遍又一遍地search一个两样东西的模式。
由于公司拆分,需要对两台旧式凌乱的Windows XP机器进行一次性备份。 使用CentOS 6 x64最小安装,我安装了一些MS Windows NTFS硬盘,通过ntfs3g在本地安装,并通过局域网通过smb安装。 我需要自己logging备份的内容,并认为没有比使用rsync完成所有脚本更好的方法。 问题是几乎所有的SOURCE文件夹名称中都有空格。 rsync的手册页似乎表明它只支持多个源文件 ,而不是多个源文件夹 。 所以我认为“足够简单”,创build一个列表,并将每个源文件夹一次一个地传递给rsync。 脚本: SOURCEWITHSPACES=( "${PREFIX}/'Documents\ and\ Settings'/. ${PREFIX}/'electronic\ claims'/. ${PREFIX}/'billing\ statements'/." ) for P in ${SOURCEWITHSPACES[@]}; do echo $P; done; OUTPUT: /媒体/ 4EC75 /“文件\ 和\ 设置/。 /媒体/ 4EC75 /'电子\ 权利要求书/。 /媒体/ 4EC75 /'计费\ 声明/。 所以当它传递给rsync时,它不能识别任何SOURCE文件夹。 我不想整理,因为它需要清楚地确定要备份的内容。 我也尝试逗号和冒号分隔文件夹名称,但是也没有工作。 什么是可靠的方式来处理这个? 切换到Perl或Python? 请不要告诉我使用robocopy.exe,因为我已经使用了它多年,发现它在Windows版本之间差别很大,它不太可靠。 另外,我永远不会回到Windows。 TAG = spacesinfolderfilenames
我有一个从MySQL读取数据的脚本(下面的get_sql_results函数),然后读取每行,用awkparsing单个列。 除了将通过ssh的mysql查询结果分配给cmusername的行之外,一切正常。 当包含这一行时,只有$结果的第一行被读取,并且在完成第一次迭代之后,该脚本似乎在读取循环中“转义”。 当我注释掉cmusername =行时,它会像我所期望的那样显示多行。 这是主要的脚本: new_results() { get_sql_results printf %s "$results" | while read -r line do accounttyperaw=$(echo -en "$line" | awk -F $'\t' '{print $5}') accountstatusraw=$(echo -en "$line" | awk -F $'\t' '{print $3}') accountname=$(echo -en "$line" | awk -F $'\t' '{print $4}') datelastchange=$(echo -en "$line" | awk -F $'\t' '{print $8}') cmuserid=$(echo […]
使用“邮件”从Linux发送电子邮件到Windows时,我正在失去行结尾。 我已经尝试了所有的方法,把多行的“body”文本设置为一个variables,然后将这个变成邮件,使用这里 – 文档样式的文本文件input到邮件中。 无论哪种方式,当电子邮件到达Windows Outlook时,我失去了所有的行结束。 releasenotes=$(tail -n5 ./ReleaseNote) echo -e "$releasenotes" | mail -s "$ALERT_EMAIL_SUBJECT" "$ALERT_EMAIL_ADDR" 我可以确认./ReleaseNote文件的确有行结尾。 我已经尝试做一个unix2dos转换,但电子邮件然后到达Outlook与.bin附件。 谁能帮忙? 今晚我已经花了几个小时。
我有一个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` […]
我有一个脚本,我写了一个OS X机器(v 10.7.4),如果一个卷是上或下来validation。 如果发生故障,应该发送一封电子邮件。 当我从命令行运行脚本时,它完美地工作,并显示我的控制宗卷(DGS_Ima_ASDF_ges_MTL)在我收到的电子邮件中。 但是,如果我在crontab中安排脚本,则表示我收到的电子邮件中的所有卷都已closures,包括我的控制卷。 有人可以告诉我如何解决这个问题。 这是我的脚本: #!/bin/bash array=("Chatelaine" "DGS_Ima_ASDF_ges_MTL" "FMC_MTL" "GF_MTL" "Holding_Tank_MTL" "LACM_MTL" "LAP_MTL" "actualite" "Loulou" "Loulou_Web" "MQC_MTL" "PS_MTL" "QP_MTL" "Visuels_MTL") [email protected] SAVE_TO=~/Documents/drives_not_mounted CRONTAB_CONFIG=~/Documents/crontab_paramaters rm $SAVE_TO for counter in ${!array[*]} do mount | grep ${array[counter]} if [ $? -ne 0 ]; then echo "${array[counter]}" >> $SAVE_TO fi done ls ~/Documents | grep drives_not_mounted […]
我正在尝试编写一个安装脚本,我需要在php.ini中更改sendmail行 但我想自动执行此操作 此刻我正在手动执行此操作: sudo nano /etc/php5/apache2/php.ini find包含sendmail_path =的行 然后编辑它 sendmail_path = / usr / bin / msmtp -t 然后保存该文件。 是否有可能只是自动脚本来做出改变? 非常感谢
我试图从我的apache日志文件中获得一些意义:我想parsing我的访问日志,并有一些关于200 status code命中(每个命中多less次)的统计信息。 所以我试着学习一些awk的魔法,在这里我现在得到了: grep "HTTP/1.1\" 200" access.log | awk '{print $7 } ' | sort | uniq -c | sort -n 这是我要做的大部分事情:从access.log中select以200次命中结束的所有日志条目,然后select与生成的命中path对应的部分,对它们进行sorting,对每个唯一元素进行计数并根据数字进行sorting这个独特元素被击中的时代。 所以结果如下所示: 1 /public/img/upload/image_3.jpg 2 /public/img/upload/image_2.jpg 8 /public/img/upload/image_1.jpg 18 /public/js/main.js 33 / 236 /index.html 我试图进一步推动它: 因为我有logrotate,我有许多其他文件,如access.log.1, …, access.log.N ,我想获得统计所有这些统计。 我find的唯一的解决scheme是使用grep "my 200 expression" -R /pathToDirWithLogs这将grep目录中的所有文件,这显然是不好的,因为它不仅会logginggrep。 列出文件也不是一个选项,因为我不知道数字N. 我真的不关心/ public / img / upload /中的每个单独的文件,我只关心其中有多less人被击中。 […]