Thursday, November 26, 2009

I want a unique document

I've recently needed to compare some data in two text documents. Unfortunately while there are some great diff tools like WinMerge available, I also discovered that the files had duplicate lines of data which a) was a mistake and b) made the diff results a great deal larger / more complex.
While some linux distro's have sort or unique commands, windows doesn't seem to have an equivalent CLI utility - so I was going to either go hunting or write a q&d vbscript... Then I remembered Powershell.
It turns out that PowerShell has a handy cmd-let called 'get-unique' - it needs a sorted list (so if it's critical your file remain in original order this example won't help). But a simple one liner resolved the duplicate problem for me:
get-content .\filename | sort | get-unique > .\outfile.txt
OR
get-content .\filename | sort -unique > .\outfile.txt
The above command gets the file, pipes to the sort cmd-let to sort the file, then passes the sorted results to the get-unique cmd-let, then passes the output to outfile.txt. The second version is an alternative that uses the unique flag of the sort cmd-let to unique-ify the output in one...
Very quick, easy, one line fix...

Friday, November 13, 2009

ArcServe Backup Errors - EC=-2005

Recently began to receive errors from Arcserve (11.5) - it would complete a backup, then all future backups would fail with error:
Failed to login to database.(EC=-2005)
At this point, even the Server manager would fail (just hung on startup) - the only resolution was a reboot, but this would only last for the first backup.


Some googling turned up the fault - a corruption with the database that Arcserve uses.
There are a few tools you can use to correct the errors (run from the Arcserve installation directory): dbdiag.exe and dbfix.exe.
The format is:
dbcheck -a -L casdb;admin;secret DBNAME
or 
dbfix -a -L casdb;admin;secret DBNAME
where DBNAME is one of the following: asjob, asmedia, asobject, asrhost, astape, astpdrv or astpsdat .
Confusingly, the servername, username (admin) and password (secret) don't actually appear to be customisable - they look like they're hardcoded values for every installation - I'll admit to spending a while trying to use our specific server details :P


Our faults were primarily in the astpsdat and asobject databases - the fix took around 30 mins to complete (the astpsdat db seemed *really* bad).

Wednesday, November 11, 2009

IVR Telephony fun - phantom calls

We recently had a situation where our IVR system was delivering 'phantom' calls to the call centre - this started occurring after the resolution of another (provider) telephony issue. We use a customised IVR solution (Intel Dialogic cards connected via PSTN to a Nortel based PABX system).


Essentially we had calls arrive at the IVR, then pass through to default transfer options (menu based timeout) then be transferred to an operator - but there were no callers on the end of the line. On the basis that the call transfers were timeout based rather than selection based, we theorised that the calls were either being delivered without a customer to the IVR, or a disconnection within the IVR was not being detected correctly.


Eventually we managed to find a tech at our telephony provider with a clue who could examine the low level configuration of the PBX lines. He found that the lines had had the 'COD' ('Cutoff on Disconnect') feature removed from them. This meant that (as we suspected) that any hangups within the IVR wouldn't be signalled correctly - so would hang around until the IVR transferred on a timeout basis.


A tricky one really, since we have no visibility to our providers hardware and little access to qualified techs at their end. Plus the usual Telco policy of '(in)plausible denial' at every stage....

Noice Applications

I use a variety of apps in day to day work - many of them free and or open source.

  • TrueCrypt - free encryption software for Win / Mac / Linux. Allows the creation of either file or partition containers in any size and a variety of formats. It's fast, the encrypted files are easily portable and fairly secure... I use it every day on the laptop...
  • Sun VirtualBox - Open source (and free) virtualisation software. Quick (pretty decent performance anyway) and with some really nice features that makes it great to use on a workstation. I run a XP virtual machine for some occasional testing / development work - just fire up the vbox app, start the vm and I can login in < 30 secs (faster than booting a regular XP machine really). It's easy to resize the VM window (dynamically resizes XP for you) and you can easily swap to full-screen (or RDP to the machine). Very very handy, I've been really impressed with it. Not sure what will happen given that Oracle has now acquired Sun though....
  • Utils:
    • FileZilla - good open source FTP client, but I'd recommend the 'portable' version (PortalApps) to avoid bothering with installation. I'd also recommend reading some documentation, at this point the default install tends to cache a *lot* of info (e.g. login details)! :/
    • Gimp - good graphics editting software. Can't really comment how it compares to photoshop, but it handles everything I need graphics software to do - and it's free. I'd recommend the portable version again here unless you are a really frequent user.
    • Scite - a good open source text editor. Not much else to say here.

Monday, November 9, 2009

Tracking down Windows license Keys

I had the unfortunate requirement the other day to track down the license keys for some Windows servers we administer (long story, don't ask). The OEM keys were (as per usual these days) stuck to the machines - but the machines are located in a co-lo across town.


So Magical Jelly Bean keyfinder to the rescue - we were able to track down all the keys and save the hassle of a trip across town... Nice.


Note that you need an earlier version 1.x if you need NT keys (tragically, we *still* have some NT machines hanging around)...

Picasa = Good

Clearly I'm a little behind the times and out of the loop, since I only just tripped over Picasa from Google.


Very nifty free software for photo editting and (helpfully) removing red-eye from photos. While Vista / Win 7 has red-eye removal built in to some packages, Picasa is a good alternative or helpful if you're on XP.

Wednesday, October 21, 2009

Joining Ubuntu to a Windows 2003 Domain

Tripped over the following post on joining Ubuntu to a Windows 2003 Domain:
http://ubuntu-virginia.ubuntuforums.org/showpost.php?p=5712234&postcount=6



I'll re-post the item below in case the original goes missing, but credit to Abhishek (abhi300) on the Ubuntu forums.
********************* SNIP *******************

Step 1. Installing


I assume that Ubuntu has been installed with no erros.


Make sure that following packages are installed, if not, install the following packages with the Synaptic Package Manager. You may need to specify “universe” as an extra source for packages.


* Samba (version 3):
o samba
o samba-common (installed by default)
o smbclient (installed by default)
o winbind
* Kerberos:
o krb5-config
o krb5-user


Step 2. Edit configuration files


Edit the following configuration files. I assume the following:


* The local DNS domain is example.com
* The Windows 2003 server is server.example.com


Open this file "/etc/samba/smb.conf" for editing either in GUI mode or by gedit.


You will need to edit this file to look like following -


[global]
security = ADS
realm = EXAMPLE.COM
workgroup = example
password server = server.example.com
wins support = no
wins server = 10.0.20.202
invalid users = root
# Winbind settings
idmap uid = 10000-20000
idmap gid = 10000-20000
# For testing
debuglevel = 2


# A shared folder for testing purposes
[SharedFolder]
path = /home/onno2/Shared_Folder
available = yes
public = yes
writable = yes
force create mode = 0666
force directory mode = 0777


Make sure the path (/home/onno2/Shared_Folder or whatever you choose) exists and that the rights are set properly (chmod 777 or something similar)




Open this file "/etc/krb5conf" for editing to make it like this


[libdefaults]
default_realm = EXAMPLE.COM
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
# The following libdefaults parameters are only for Heimdal Kerberos.
v4_instance_resolve = false
v4_name_convert = {
host = {
rcmd = host
ftp = ftp
}
plain = {
something = something-else
}
}
[realms]
EXAMPLE.COM = {
kdc = SERVER.EXAMPLE.COM
admin_server = SERVER.EXAMPLE.COM
}
[domain_realm]
.server.com = SERVER.EXAMPLE.COM
server.com = SERVER.EXAMPLE.COM
[login]
krb4_convert = true
krb4_get_tickets = true


Now open "/etc/nsswitch.conf" for editing.


The only change we have to do here is to add winbind twice.


# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat winbind
group: compat winbind
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis


Now when you have done with editing the files...take a breath.


Step 3. Start or restart services




/etc/init.d/samba restart
/etc/init.d/winbind restart


Step 4. Join domain


type in terminal - "net ads join -U administrator" without quotes. Needless to mention that you will need to give administrator password here


If this doesn’t work, check the logs in Linux (/var/log/samba/*) and in Windows - Event Viewer.


Step 5. Test your setup


Type in terminal (without quotes)-


"testparm" to check if your smb.conf has a correct syntax.
"kinit" onno@EXAMPLE.COM test if kerberos works properly.
"wbinfo -u" should give a list of users of domain.
"wbinfo -g" should give a list of groups of domain.
"getent passwd" should give a list of users in the passwd style.
"getent group" should give a list of groups.
"ls -ltr /var/log/samba" gives a list of log files, sorted by time of last change.
"smbclient -L -U onno" should give you a list of available shares.


If this all works properly, try to access the share (/home/onno2/Shared_Folder) from any Windows machine in the domain by using network neighborhood /My Network Places.