I'm triyng to make a Bash Script that checks (recursively) the MD5 from all the files in a certain directory and compare them against some other check that should be already done and saved in a file.
I've reached to the point where i have the MD5 from the file and the MD5 that the script saved in a file the last time it runs.
But, for some reason, when i compare them, the script always tell me that the MD5 change!
Here is the part of the script that make the comparision:
Code:
For those who want it, the complete script: (Long and with Comments in Spanish!)
have an application where from time to time I need to check the db for some value and run some functions to do some checks. is the best option do it as php daemon or cron job?Whatworried of cron job is the overalapping.
I have a line of code from a csh script:Code:if ( ! -e TEST ) mkdir TESTit checks if the directory "TEST" exists and if it DOES exist then nothing happens, if it DOES NOT exist then directory TEST will be made. Now I want to use this in a sh (or bash) script. Does anybody know the equivalent of the line above for sh?
I would like to know how do I print the line # in a script. My requirement is, I have a script which is about ~5000 lines long. If there are any errors happen I just exit. And I would like to add the line # of the script where the error happened.
Code: #!/bin/bash trap "echo 'you got me'" SIGINT SIGTERM # to trap ctrl+c echo "Press ctrl+c during 5 sec loop" for ((i=0;i<5;i++)); do
[Code]...
How come code behaves normally and stops when ctrl+c signal is caught and resumes, but after I use at least one timeout read in the code it looks like, if signal is caught again it doesn't pause the execution but skips the loop. If you remove -t (timeout) option from the read, both loops look the same!
Now in my bash script, I want to get the output /home/user instead of $HOME once read. So far, I have managed to get the $HOME variable but I can't get it to echo the variable. All I get is the output $HOME.
I have written quite a few separate bash & scripts and php scripts that up to now I have run from cron jobs. However I have to estimate how long each takes to run, before running the next and so it probably takes much longer than necessary to run them all. They have to run in order.
Now there are so many I am thinking it would be better to have a master bash script that would run one after the other, but I am not sure how to get the master script to wait before starting to run the next script. Is this possible and is there a command that will make the script wait between bash and php scripts , for them to finish, before running the next?
I think it would be better to count the len and remove 3 chars to right to get the extension, but it can be macintosh filenames with have 4 chars for extensions.
I need to rename the resulted searched files from a loopI have the following code:
find . -name DOC* | while read i do find $i -type f -name '*.txt' done
basically, I am searching for all txt files inside any folder starting with DOC name.this code is working fine with me.I need to rename those .txt files to .txtOLDOS: Ubuntu 10.4Bash shell
I am trying to write a bash script that sources another bash script. Essentially, I need a few lines to check to see if a certain variable is set. If not, I set it manually, and then source a scripts with that variable in the path. I wrote a test script to try it, but for some reason the last line does not work. Here is what I wrote:
#!/bin/sh source ~setupdir/setup.shrc #just a test, this line works echo ${#SETUP} # prints 0 if setup is not set, which it isn't if [ ${#SETUP} -eq 0 ] then SETUP="~setupdir" fi echo $SETUP # prints ~setupdir
i'm in the process of learing C++. currently i'm creating shell scripts to get things done. i'm just curious how, as a programmer using C++ you would get a similar job done.as an example i have a script that takes the contents of files, pipes it to some sed and awk commands, which is piped to create a new file. that file is then imported into a mysql database.if you were going to do this in C++, would you call the sed/awk programs to modify the file, or can it be done within the program itself? i'm probably jumping the gun here because i've just started learing about pointers so this is above my ability
I downloaded the Fedora 10 DVD installation image and burn it to a DVD.The image was good, I checked the md5 sum.When I put the DVD in the drive and rebooted the text based menu appeared and I chose Install or upgrade.The the installer asked me if I want to check the DVD and I entered Yes.The DVD was checked and it turned out to be fine, but after that when I wanted to continue whit the installation the installer reinserted the DVD but it gave a message saying that it can't find Fedora on any drive .Even if just minutes ago it verified the DVD for integrity.And then it ejected the DVD.If I wanted to press F12 to continue it reinserted the DVD and gave the same message.So I can't continue my installation.
The DVD was fine as you can see, checked by me and by the installer itself.Is the installer asking for a CD?? I thought the DVD was for installing.And even better, that DVD was made whit the exact DVD writer which I use for the installation.So it can't be any incompatibility problem between different DVD ROMs or Writers.
The DVD installation is very important to me, because on that computer there is no internet connection.So the DVD is a solution to install a lot of software and actually use that computer, since yum does not work.
Since Slackware does not use PAM where do I go to set password requirements. For instance, in CentOS there is the /etc/pam.d/system-auth-ac file where I can edit the cracklib and pam_unix modules to allow/disallow dictionary checks and min/max password lengths. Where do I go to edit that in Slackware?
Ever since my upgrade from 9.10 to 10.4, every time I reboot the system it does a full disk check. /var/log/boot.log tells me that fsck thinks that the file systems contain errors or that it wasn't cleanly unmounted. And yet, it doesn't seem to actually find errors, and a clean reboot starts another check (again with it thinking something is dirty). I dual-boot with Windows, and reboot from there with the same problem.Again, all of this is new with 10.4 and was not happening with 9.10.Is there a way to find out when/how/why the disks are not being unmounted cleanly?
Nothing too major here but today I had a few programs open and was doing a bunch of things and suddenly the system froze.
I am on 10.04 LTS -
Are there checks that I can do to see if everything is ok?
I had to turn the power off and re-booted and everything is fine, or rather, seems to be 100% fine - but more out of curiosity Id like to see if there are some checks that I can do.
I think that ubuntu creates a log of activity if I am not mistaken?
I was just wondering why Ubuntu is always checking my discs for errors. This happens every few times i turn the computer off and back on. Maybe every 2 or 3 times. Is this just ubuntu checking the discs or something to worry about?
I am running Sendmail server for SMTP. I included dnsbl form spam filtering and it works well.
Quote:
But sometimes it seems that sendmail just doesn't check the dnsbl. I was capturing the communication and I find out that several times the client just send the message and the sendmail does not even send a packet for check it in dnsbl. The whole SMTP session was completed without one blacklist check?
I use FEATURE(`delay_checks')dnl for allowing authenticated clients to pass the filters. Can this cause that the SMTP session is completed to fast and sendmail just has no time to check the dnsbls? (the check is delayed)
Creating script that converts hex to dec. But without using bc calculator or other methods that could convert it in one line. I need to make something like this script that converts dec to hex.
I have a basic awk script that can read a file named 'server_info' and output to the screen which fax lines are not working. Now I want to make the script execute commands instead of printing to the screen but I am having trouble... This is better explained by my code below:
test.sh Code: #!/usr/bin/awk -f # #The name of this script is test.sh
Code: #!/bin/sh #System commands and other configurable. IPT=/sbin/iptables IP6T=/sbin/ip6tables IPST=/usr/sbin/ipset MODP=/sbin/modprobe GET=/usr/bin/wget INT_NET=192.168.1.0/24 .....
I can find lots of tutorials in how to use if, then, else. However, how do I define a variable inside the function? SEE>> Code: for c in $ISO Also, am I using the 'test' command correctly( -/+ week as valid test)?
I'm somewhere between Novice and I have no idea what I'm doing with bash scripts. I'm writing a script to deploy images using partimage on my company's desktops, and while I have just about everything else figured out I have one issue left.Each of our 4 sites that will be using this disc will have a deployment server due to the fact that our sites have dedicated point to point links that our business traffic is conducted on. I need to be able to determine what site I'm at based onubnet and set a variable based on this determination. What I don't know is how to get the IP address in to an if statement, and properly determine subnet. For example:
192.168.1.0/16 - 192.168.7.0/16 need to use DEPLSERV01 192.168.8.0/16 - 192.168.16.0/16 use DEPLSERV02 192.168.17.0/16 - 192.168.24.0/16 use DEPLSERV03
I know it's a very silly question but could someone please explain the difference between "/bin/bash" & "/bin/sh" I was under the impression that both are same but following output on my Ubuntu 8.10 is making me raise my eyebrows.
i want to run bash script on website.i still have to choose between unix hosting and windows hosting. my web hosting service offer Own Cgi - Bin PHP,ASP,MYSQL,MSSQL, and script schedule(cronejob). This is script
#!/bin/bash #Store arguments from bash command line fight=$1 support=$2 msg=rmsg
Having a problem with an unwanted redirection in in a function call. Although this isn't the function it does illustrate the problem:
Code: #!/bin/bash doat () { ALL="sys1 sys2" for Sys in $ALL;do echo "---> $Sys <---"; echo $(eval echo $1);
[Code]...
figure out how to get the variable into the command without outputting to the file in the eval statement? So that ssh line that gets executed would look like the following to each iteration of the for loop:
Code: ssh root@$Sys rpm -qa|sort > /trans/${Sys}-rpm-list.txt; doat works when the incoming argument doesn't have any redirection in the command.